我的程序中有一个最大的问题。我已经创建了"保存"按钮,但如果.txt文件是新的,它会保存(然后该按钮执行"另存为"功能)。但当我打开文件,然后键入一些内容并尝试保存时,它没有保存:s。有人能帮我吗?
这是代码:
fileSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(currentFile == null) {
int saveResult = fileSelect.showSaveDialog(null);
if(saveResult == fileSelect.APPROVE_OPTION) {
saveFile(fileSelect.getSelectedFile(), field.getText());
} else {
saveFile(currentFile, field.getText());
}
}
}
});
public void saveFile(File file, String contents) {
BufferedWriter writer = null;
String filePath = file.getPath();
if(!filePath.endsWith(".txt")) {
filePath += ".txt";
}
try {
writer = new BufferedWriter(new FileWriter(filePath));
writer.write(contents);
writer.close();
field.setText(contents);
setTitle("Editex - " + filePath);
currentFile = file;
} catch (Exception e) {
}
}
当currentFile!=null,这就是我假设的情况,当您试图保存一个已经有Filename的文件时。
这样做:
if(currentFile == null) {
// Handle if new file
} else {
// Handle an existing file
}
移动
saveFile(currentFile, field.getText());
转换为上面的else部分。
目前,它位于if(currentFile == null)
中,这不是您在此处调用saveFile(null, field.getText())
的正确位置。
还有
catch(Exception e) {
}
糟糕的是,永远不要吞下一个例外,什么都不做,你永远不会知道例外是否发生,只是什么都不会发生。