我创建了一个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;
}
我面临的问题是,即使文件内容发生了变化,该函数也会返回相同的字符串。
任何人都可以帮忙???
答案 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和现有的库。它使代码更清晰,更易于维护。