我有一个JFileChooser设置为一个Save Dialog和一个jTextArea,我可以写东西,我的问题是,当我保存它时,文本没有被保存。我有什么想法我做错了吗?
private void saveAsButtonMouseClicked(java.awt.event.MouseEvent evt) {
SaveAs saveasbtn= new SaveAs();
int retrival = saveOption.showSaveDialog(null);
if (retrival == JFileChooser.APPROVE_OPTION)
{saveasbtn.saveAs(jTextArea2.getText(),saveOption);}
}
public void saveAs(String value,JFileChooser saveOption){
try {
FileWriter fw;
fw = new FileWriter(saveOption.getSelectedFile()+".txt");
fw.write(value);
} catch (IOException ex) {
Logger.getLogger(SaveAs.class.getName()).log(Level.SEVERE, null, ex);
}
}
答案 0 :(得分:1)
使用try-with-resources语法确保您的数据已写出。
try (FileWriter fw = new FileWriter(saveOption.getSelectedFile()+".txt") {
fw.write(value);
} catch (IOException ex) {
Logger.getLogger(SaveAs.class.getName()).log(Level.SEVERE, null, ex);
}
您可能还想让IOException
从saveAs()
传播(通过向方法签名添加throws IOException
)或执行其他操作,例如返回boolean
来表示写入是否成功。否则,您的程序无法判断saveAs()
是否实际有效。