Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中读取文件时获得相同的内容_Java_File_Filereader - Fatal编程技术网

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

在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 =

我已经创建了一个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;
}
我面临的问题是,即使文件内容发生更改,函数也始终返回相同的字符串


有人需要帮助吗?

将变量
行添加到变量中,因为您将其存储到该变量中。问题是您调用了
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。