为什么我不能在java中读取文件的所有行?

时间:2016-04-24 02:24:54

标签: java

我正在尝试用Java创建一个文本编辑器,但我似乎无法使用“打开文件”功能。当我运行代码时,它只显示文件的第一行。我已经尝试了所有代码片段:How to read a large text file line by line using Java?,但它仍然只读取第一行。

这就是我的尝试:

            JMenuItem mntmOpen = new JMenuItem("Open");
            mntmOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0));
            mntmOpen.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

            if (e.getSource() == mntmOpen) {
                int returnVal = fc.showOpenDialog(null);

                if (returnVal == JFileChooser.APPROVE_OPTION) {
                    File file = fc.getSelectedFile();
                    //This is where a real application would open the file.

                    Path HI = file.toPath();


                    try( Stream<String> lines = Files.lines(HI)
                            ){
                        for( String line : (Iterable<String>) lines::iterator )
                        {
                            editorPane.setText(line); 
                        } 
                    }catch (IOException e1) {

                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }


                }
            }
        }
    });

1 个答案:

答案 0 :(得分:0)

在这里查看这个答案,您应该可以使用while循环中的部分。相当直接运行直到null,这基本上表明缓冲区将继续读取,直到读取器发回空指针,在这种情况下文件中没有任何内容。如果这不起作用,那么我们可以再看看它。你也没有先搜索问题而没有寻找答案。 https://www.caveofprogramming.com/java/java-file-reading-and-writing-files-in-java.html