如何使用io.File读取文件的数据?

时间:2016-05-19 17:48:21

标签: java

如果我有.txt文件的路径,并且我想将所有数据转换为一个String, 无论如何我能做到吗?

我在io.File API

中找不到合适的方法

4 个答案:

答案 0 :(得分:1)

没有一种方法可以读取java.io包中的整个文件,但是您可以通过使用BufferedReader,逐行读取并将它们与'\ n'一起附加以获得完整内容。例如:

String  line = null;
StringBuilder sb = new StringBuilder("");

BufferedReader br = new BufferedReader("c:/path/yourfile.txt");
while ((line = br.readLine()) != null) {
    sb.append(line).append("\n");
}  
// you may probably need to remove the last '\n' before toString()

String fileContent = sb.toString();

答案 1 :(得分:0)

最简单的方法是在项目中添加Apache Commons IO library并使用FileUtils.readFileToString方法之一

答案 2 :(得分:0)

过去,我使用过Java.util.Scanner类,并且取得了成功。我会尝试编写一个辅助方法,如:

public String getFileAsString(String pathName){
  StringBuilder fullTxtFileAsString = new StringBuilder();
  Scanner in = new Scanner(new File(pathName));
  while(in.hasNext()){
    fullTxtFileAsString.append(in.nextLine);
    fullTxtFileAsString.append("\n");
  }
  return fullTxtFileAsString.deleteCharAt(fullTxtFileAsString.size() - 1).
    toString(); //Removes the extra newline character
}

答案 3 :(得分:0)

您可以使用Files.readAllLines(Path file)来读取列表中的txt文件,而不是使用String.join(..)构建单个字符串,如下所示::

List<String> lines = Files.readAllLines(Paths.get("file.txt"));
String s = String.join( "", lines);
System.out.println(s);
希望这可以提供帮助。