本文主要介绍Java中读取文本(txt)文件内容方法,总结几种常用读取文件的方法代码。

1、常用读取文本文件内容代码

private String readFile(String file) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader (file));
String line = null;
StringBuilder stringBuilder = new StringBuilder();
String ls = System.getProperty("line.separator");
try {
while((line = reader.readLine()) != null) {
stringBuilder.append(line);
stringBuilder.append(ls);
}
return stringBuilder.toString();
} finally {
reader.close();
}
}

2、使用Files.readString读取文本

Java 11添加了readString()方法来读取小文件String,保留行终止符。

String content = Files.readString(path, StandardCharsets.US_ASCII);

3、使用Files.readAllBytes读取文本内容(指定字符编码)

static String readFile(String path, Charset encoding) 
throws IOException
{
byte[] encoded = Files.readAllBytes(Paths.get(path));
return new String(encoded, encoding);
}

StandardCharsets类中定义的所有Java运行时所需要的编码的一些常量:

String content = readFile("test.txt", StandardCharsets.UTF_8);

该平台默认可从该Charset类本身:

String content = readFile("test.txt", Charset.defaultCharset());

4、使用外部库org.apache.commons.io.FileUtils.readFileToString()

使用外部库,请查看Apache Commons IO(200KB JAR)。它包含一个org.apache.commons.io.FileUtils.readFileToString(),读取FileString用一行代码。例如:

import java.io.*;
import java.nio.charset.*;
import org.apache.commons.io.*;
public String readFile() throws IOException {
File file = new File("data.txt");
return FileUtils.readFileToString(file, StandardCharsets.UTF_8);
}