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