在java中读取文件时获得相同的内容
我已经创建了一个FileReader对象在java中读取文件时获得相同的内容,java,file,filereader,Java,File,Filereader,我已经创建了一个FileReader对象 public String getFileContent(){ StringBuilder filecontent= new StringBuilder(); FileReader fileReader = new FileReader("D:/myfile"); BufferedReader bufferedReader = new BufferedReader(fileReader); while((line =
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;
}
我面临的问题是,即使文件内容发生更改,函数也始终返回相同的字符串
有人需要帮助吗?将变量
行添加到变量中,因为您将其存储到该变量中。问题是您调用了readline()
两次
像这样:
while((line = bufferedReader.readLine()) != null) {
filecontent.append(line);
}
您已经收到了答案,但您所做的似乎可以在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获取字符串
:
File file = new File("D:/myfile");
String fileContents = FileUtils.readFileToString(file);
我的建议是尽可能地利用JDK和现有库。它导致代码更干净,更易于维护 您从文件中读取了两行。另外,如果您使用Java 7+,请改用Java.nio.file。