我有一个应该从文件中读取的程序。它读取一些数据,但不是全部。当我尝试在同一位置读取同一个文件时,另一个程序以相同的方式使用相同的类完成读取操作整个文件。 这是两个程序中使用的代码:
if (i >= 1) {
try {
file = new File("Tabel " + i + " " + timeLine + ".csv");
fw = new FileWriter(file);
fw.write(FileChooserSave.getInstance().getStringArray()[i]);
if (i == 1) {
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis,"UTF-8");
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
fis.close();
isr.close();
br.close();
}
} catch (IOException ex) {
Logger.getLogger(Frame.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
fw.close();
} catch (IOException ex) {
Logger.getLogger(Frame.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
它总是在同一个地方停止阅读。我检查了一下是否有一些笨拙的字符,但没有。 我还应该提到,我从中读取的文件是 .csv 格式,并且是一个相当大的文件,但我不知道这是否是问题所在。 提前致谢!
最佳答案
嗯...您的解决方案有点过于复杂,因此可能有很多因素导致了问题。
我会尝试在 Debug模式下启动应用程序,当它“挂起”时,只需暂停线程即可,例如在 Eclipse 中,您将看到它在哪里等待数据。
如果您使用的是 Java 7,有一个简单的命令可以帮助您一次读取文件的所有行:
Path file = Paths.get(filename);
List<String> lines = Files.readAllLines(file, Charset.defaultCharset());
关于java - 什么可能导致程序无法读取整个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9565764/