我最喜欢读取小文件的方法是使用BufferedReader和StringBuilder。它非常简单而且非常简单(虽然不是特别有效,但对大多数情况来说足够好):BufferedReader br = new BufferedReader(new FileReader("file.txt"));try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
String everything = sb.toString();} finally {
br.close();}
有人指出,在Java 7之后你应该使用try-with-resources(即自动关闭)功能:try(BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
String everything = sb.toString();}
当我读这样的字符串时,我通常想要每行执行一些字符串处理,所以我就去实现这个。
虽然如果我只想将文件读入String,我总是使用Apache Commons IO和类IOUtils.toString()方法。您可以在这里查看来源:FileInputStream inputStream = new FileInputStream("foo.txt");try {
String everything = IOUtils.toString(inputStream);} finally {
inputStream.close();}
使用Java 7更简单:try(FileInputStream inputStream = new FileInputStream("foo.txt")) {
String everything = IOUtils.toString(inputStream);
// do something with everything string}