gpt4 book ai didi

Java程序不保存 ".txt"文件的内容

转载 作者:行者123 更新时间:2023-12-01 10:17:37 26 4
gpt4 key购买 nike

我正在开发一个 Java 文本编辑器,作为一个有趣的业余项目。当我导出项目时,我将可执行 JAR 文件转换为“.exe”,以便我可以将文本编辑器设置为打开“.txt”文件的默认程序。我可以运行“.exe”并写入文本,然后保存文件,并且文件保存,但是当我尝试使用文本编辑器打开文件时,文件的内容没有保存;但是,我可以用记事本打开同一文件,并显示文件的内容。该文件在 Eclipse 中保存良好。我需要修复什么才能在尝试使用文本编辑器打开文件时显示文件内容?

这是我的代码:

public class Open extends JFrame implements KeyListener {

JPanel panel = new JPanel();
JTextArea textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);

JMenuBar menuBar = new JMenuBar();
JMenu menu;
JMenuItem item;
Font systemFont;

public Open() {

systemFont = new Font("Times New Roman", Font.PLAIN, 20);

textArea.setLineWrap(true);
textArea.setWrapStyleWord(false);
textArea.setFont(systemFont);
panel.setLayout(new BorderLayout());
panel.add(scrollPane);
add(panel);

menu = new JMenu("File");
item = new JMenuItem("Save As");

item.setAccelerator(KeyStroke.getKeyStroke('S', Toolkit.getDefaultToolkit ().getMenuShortcutKeyMask()));

item.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent ae) {

JFileChooser JFC = new JFileChooser();
File fileName = new File("");
BufferedWriter writer = null;

try {

int rVal = JFC.showSaveDialog(Open.this);
if(rVal == JFileChooser.APPROVE_OPTION) {

writer = new BufferedWriter(new FileWriter(JFC.getSelectedFile()));
writer.write(textArea.getText());

}
} catch(Exception e) {
e.printStackTrace();
} finally {
if(writer != null) {
try {
writer.close();
} catch(IOException e) {
e.printStackTrace();
}

}

}

}

});

menu.add(item);
menuBar.add(menu);

menu = new JMenu("Edit");
item = new JMenuItem("Undo");

menu.add(item);

menu.add(item);


menuBar.add(menu);



add("North", menuBar);


setLookAndFeel();
frameDetails("Text Editor");

}

public void frameDetails(String title) {

setSize(700, 500);
setLocationRelativeTo(null);
setTitle(title);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void setLookAndFeel() {

try {

UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());
SwingUtilities.updateComponentTreeUI(this);

} catch(Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {

Open editor = new Open();

}

}

这是带有保存按钮的代码:

 item.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent ae) {

JFileChooser JFC = new JFileChooser();
File fileName = new File("");
BufferedWriter writer = null;

try {

int rVal = JFC.showSaveDialog(Open.this);
if(rVal == JFileChooser.APPROVE_OPTION) {

writer = new BufferedWriter(new FileWriter(JFC.getSelectedFile()));
writer.write(textArea.getText());

}
} catch(Exception e) {
e.printStackTrace();
} finally {
if(writer != null) {
try {
writer.close();
} catch(IOException e) {
e.printStackTrace();
}

}

}

}

});

最佳答案

您永远不会阅读文本文件。为了做到这一点,请使用这样的东西

public void loadFile(JTextArea area, String path, String file)
{
try
{
area.read(new FileReader(path + file), "Default");
}
catch(IOException e)
{
e.printStackTrace();
}
}

注意:您不必在方法中包含此内容。您可以只使用 try - catch 代码

关于Java程序不保存 ".txt"文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35805260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com