BufferedReader returns 与原始文件不匹配的文件
BufferedReader returns file that does not match the original
我正在使用 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);
我正在使用 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);