java - 什么可能导致程序无法读取整个文件?

标签 java file fileinputstream

我有一个应该从文件中读取的程序。它读取一些数据,但不是全部。当我尝试在同一位置读取同一个文件时,另一个程序以相同的方式使用相同的类完成读取操作整个文件。 这是两个程序中使用的代码:

                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/

相关文章:

c++ - 如何检查迭代器是否形成连续的内存区域?

java - 通过Junrar解压rar文件然后删除压缩包

java - 重置 BufferedInputStream 持有 FileInputStream

bash - 如何将大文本文件拆分为行数相等的小文件?

java - 具有覆盖 equals 和 hashCode 的 HashMap 不起作用

java - Kotlin 投影冗余

java - 将 groovy 的 RestClient 与 ignoreSSLIssues() 一起使用时出现 SSLPeerUnverifiedException :"peer not authenticated"

从 Eclipse 文件夹加载 Java HTML 文件

java - 从文本文件中读取字符同时忽略新行中的额外空格的最佳方法是什么?

java - j2ME 最快的 Dijkstra 算法