Files.readString() - Java 11
使用 Java 11 中引入的新方法 readString(),只需一行即可将文件内容读取到 String
中。
在 Java 11 中将文件读取为字符串
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; public class WriteToFile { public static void main(String[] args) throws IOException { Path fileName = Path.of("demo.txt"); String content = "hello world !!"; Files.writeString(fileName, content); String actual = Files.readString(fileName); System.out.println(actual); } }
Files.lines() - Java 8
lines() 方法将文件中的所有行读入 Stream 。
当流被消耗时,流被延迟填充。
使用指定的字符集将文件中的字节解码为字符。
在 Java 8 中逐行读取文件
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 ) ); } // 使用 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(); } }
BufferedReader - Java 6 及以下
如果我们仍未使用 Java 7 或者更高版本,请使用 BufferedReader 类。
它的 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 ) ); } 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(); } }
以下示例使用 Files.readAllBytes()
、Files.lines()
(逐行读取)以及 FileReader
和 BufferedReader
将文件读取到 String 。
欢迎来到之路教程(on itroad-com)
Files.readAllBytes() - 将整个文件读入字符串 - Java 7
readAllBytes() 方法从文件中读取所有字节。
此方法可确保在读取所有字节或者抛出 I/O 错误或者其他运行时异常时关闭文件。
读取所有字节后,我们将这些字节传递给 String
类构造函数以创建一个新的 String。
Java 程序将整个文件读取为 String
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; } }
日期:2020-09-17 00:09:24 来源:oir作者:oir