在java中读取文件时会得到相同的内容

时间:2015-04-18 06:59:33

标签: java file filereader

我创建了一个FileReader对象。

public String getFileContent(){

   StringBuilder filecontent= new StringBuilder();

   FileReader fileReader =  new FileReader("D:/myfile");

   BufferedReader bufferedReader = new BufferedReader(fileReader);


   while((line = bufferedReader.readLine()) != null) {

      filecontent.append(bufferedReader.readLine());

   }    

   return filecontent.toString;
}

我面临的问题是,即使文件内容发生了变化,该函数也会返回相同的字符串。

任何人都可以帮忙???

2 个答案:

答案 0 :(得分:0)

附加变量line,因为您将变量存储到该变量中。问题是你正在调用readline()两次

像这样:

while((line = bufferedReader.readLine()) != null) { 
      filecontent.append(line); 
 }  

答案 1 :(得分:0)

您已经收到了答案,但似乎您在Java 8中可以做得更好:

Path filePath = Paths.get("D:/myfile");
byte[] fileBytes = Files.readAllBytes(filePath);
Charset fileEncoding = StandardCharsets.UTF_8;
String fileContents = new String(fileBytes, fileEncoding);

如果您不在Java 8上,可以使用Apache Commons IO FileUtils来获取String

File file = new File("D:/myfile");
String fileContents = FileUtils.readFileToString(file);

我的建议是尽可能地利用JDK和现有的库。它使代码更清晰,更易于维护。