多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Java 程序:从文件内容创建字符串 > 原文: [https://www.programiz.com/java-programming/examples/string-from-file](https://www.programiz.com/java-programming/examples/string-from-file) #### 在此程序中,您将学习使用 Java 从给定文件的内容创建字符串的不同技术。 从文件创建字符串之前,我们假设在`src`文件夹中有一个名为`test.txt`的文件。 这是`test.txt`的内容 ```java This is a Test file. ``` ## 示例 1:从文件创建字符串 ```java import java.io.IOException; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; public class FileString { public static void main(String[] args) throws IOException { String path = System.getProperty("user.dir") + "\\src\\test.txt"; Charset encoding = Charset.defaultCharset(); List<String> lines = Files.readAllLines(Paths.get(path), encoding); System.out.println(lines); } } ``` 运行该程序时,输出为: ```java [This is a, Test file.] ``` 在上面的程序中,我们使用`System`的`user.dir`属性获取存储在变量`path`中的当前目录。 检查 [Java 程序:获取当前目录](/java-programming/examples/current-working-directory "Java Program to get the current directory"),以获取更多信息。 我们使用`defaultCharset()`作为文件的编码。 如果知道编码,请使用它,否则使用默认编码是安全的。 然后,我们使用`readAllLines()`方法从文件中读取所有行。 它采用文件的`path`及其`encoding`,并将所有行作为列表返回,如输出所示。 由于`readAllLines`也可能会引发`IOException`,因此我们必须这样定义`main`方法 ```java public static void main(String[] args) throws IOException ``` * * * ## 示例 2:从文件创建字符串 ```java import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Paths; public class FileString { public static void main(String[] args) throws IOException { String path = System.getProperty("user.dir") + "\\src\\test.txt"; Charset encoding = Charset.defaultCharset(); byte[] encoded = Files.readAllBytes(Paths.get(path)); String lines = new String(encoded, encoding); System.out.println(lines); } } ``` 运行该程序时,输出为: ```java This is a Test file. ``` 在上述程序中,我们没有获得字符串列表,而是获得了一个包含所有内容的字符串`row`。 为此,我们使用`readAllBytes()`方法从给定路径读取所有字节。 然后,使用默认的`encoding`将这些字节转换为字符串。