💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# Java 将文件读取为字符串(已针对 Java 8 更新) > 原文: [https://howtodoinjava.com/java/io/java-read-file-to-string-examples/](https://howtodoinjava.com/java/io/java-read-file-to-string-examples/) 学习**将文件读取为 Java 中的字符串**。 给定的示例使用`Files.readAllBytes()`,`Files.lines()`(以**逐行读取**)和`FileReader`和`BufferedReader`至**将文本文件读取为字符串**。 ## 将文件读取为字符串的 3 个 Java 示例 用于将文件读入字符串的所有 3 个示例的源代码。 ```java //Java 8 - Read file line by line - Files.lines(Path path, Charset cs) private static String readLineByLineJava8(String filePath) { StringBuilder contentBuilder = new StringBuilder(); try (Stream<String> stream = Files.lines( Paths.get(filePath), StandardCharsets.UTF_8)) { stream.forEach(s -> contentBuilder.append(s).append("\n")); } catch (IOException e) { e.printStackTrace(); } return contentBuilder.toString(); } //Files.readAllBytes(Path path) - Java 7 and above private static String readAllBytesJava7(String filePath) { String content = ""; try { content = new String ( Files.readAllBytes( Paths.get(filePath) ) ); } catch (IOException e) { e.printStackTrace(); } return content; } //Using BufferedReader and FileReader - Below Java 7 private static String usingBufferedReader(String filePath) { StringBuilder contentBuilder = new StringBuilder(); try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { String sCurrentLine; while ((sCurrentLine = br.readLine()) != null) { contentBuilder.append(sCurrentLine).append("\n"); } } catch (IOException e) { e.printStackTrace(); } return contentBuilder.toString(); } ``` 我已将文件`data.txt`放置在位置`c:/temp`。 我将在所有 3 个示例中阅读此文件。 ```java Welcome to howtodoinjava.com blog. Learn to grow. ``` ## `Files.lines()` – 在 Java 8 中将文件读取为字符串 [`lines()`](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#lines-java.nio.file.Path-java.nio.charset.Charset-)方法**从文件中读取所有行以流**,并随着[流](//howtodoinjava.com/java8/java-8-tutorial-streams-by-examples/)被消耗而懒惰地填充。 使用指定的字符集将文件中的字节解码为字符。 ```java import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.stream.Stream; public class ReadFileToString { public static void main(String[] args) { String filePath = "c:/temp/data.txt"; System.out.println( readLineByLineJava8( filePath ) ); } //Read file content into string with - Files.lines(Path path, Charset cs) private static String readLineByLineJava8(String filePath) { StringBuilder contentBuilder = new StringBuilder(); try (Stream<String> stream = Files.lines( Paths.get(filePath), StandardCharsets.UTF_8)) { stream.forEach(s -> contentBuilder.append(s).append("\n")); } catch (IOException e) { e.printStackTrace(); } return contentBuilder.toString(); } } ``` 输出: ```java Welcome to howtodoinjava.com blog. Learn to grow. ``` ## 将整个文件读到字符串 – `Files.readAllBytes()`(≥ Java 7) [`readAllBytes()`](https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#readAllBytes(java.nio.file.Path))方法*从文件*读取所有字节。 该方法可确保在读取所有字节或引发 I/O 错误或其他运行时异常时关闭文件。 读取所有字节后,我们将这些字节传递给`String`类构造器以创建一个字符串。 ```java import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; public class ReadFileToString { public static void main(String[] args) { String filePath = "c:/temp/data.txt"; System.out.println( readAllBytesJava7( filePath ) ); } //Read file content into string with - Files.readAllBytes(Path path) private static String readAllBytesJava7(String filePath) { String content = ""; try { content = new String ( Files.readAllBytes( Paths.get(filePath) ) ); } catch (IOException e) { e.printStackTrace(); } return content; } } ``` 输出: ```java Welcome to howtodoinjava.com blog. Learn to grow. ``` ## 逐行读取文件 – `BufferedReader`(< Java 7) 如果仍不使用 Java 7 或更高版本,则使用[`BufferedReader`](https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html)类。 `readLine()`方法**一次读取一行文件**,然后返回内容。 ```java import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class ReadFileToString { public static void main(String[] args) { String filePath = "c:/temp/data.txt"; System.out.println( usingBufferedReader( filePath ) ); } //Read file content into string with - using BufferedReader and FileReader //You can use this if you are still not using Java 8 private static String usingBufferedReader(String filePath) { StringBuilder contentBuilder = new StringBuilder(); try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { String sCurrentLine; while ((sCurrentLine = br.readLine()) != null) { contentBuilder.append(sCurrentLine).append("\n"); } } catch (IOException e) { e.printStackTrace(); } return contentBuilder.toString(); } } ``` 输出: ```java Welcome to howtodoinjava.com blog. Learn to grow. ``` 使用上述任何一种方法,都可以使用 Java 将文件**读入字符串**。 学习愉快!