我正在使用 BufferedReader 读取文件并将每一行存储在 String ArrayList 中。但是,在运行 BufferedReader、读取文件、存储文件并打印 ArrayList 后,我得到了与原始文件不同的内容。
我的读取文件的代码:
public File shooterUIFile = new File("./src/com/xyfurion/hudedit/bin/resources/ShooterUI.ini");
public ArrayList<String> shooterUIRead = new ArrayList<>();
public ArrayList<String> shooterUIWrote = new ArrayList<>();
public void readHUDFile(){
try {
FileReader fileReader = new FileReader(shooterUIFile);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while (bufferedReader.readLine() != null)
shooterUIRead.add(bufferedReader.readLine());
for (int i = 0; i < shooterUIRead.size(); i++)
System.out.println(shooterUIRead.get(i));
bufferedReader.close();
}
catch(FileNotFoundException ex) {
System.out.println("Unable to open file '" + shooterUIFile + "'");
ex.printStackTrace();
}
catch(IOException ex) {
System.out.println("Error reading file '" + shooterUIFile + "'");
ex.printStackTrace();
}
}
输出(打印文件):PASTEBIN
原始文件:PASTEBIN
最佳答案
您只保留每隔一行,因为每次迭代都会调用 readLine
两次,并丢弃第一个读取行(while
条件中的行)。
你可以这样避免它:
String line = null;
while ((line = bufferedReader.readLine()) != null)
shooterUIRead.add(line);
关于java - BufferedReader 返回与原始文件不匹配的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48808965/