如何使用JFileChooser保存file.txt?

时间:2014-10-08 23:16:25

标签: java save jfilechooser notepad

我正在开发notepad项目,想知道如何保存file.txt,我的问题是,我保持文件打开JFileChooser,选中本地保存后打算,但如果再次保存将再次打开JFileChoose。我要保存。不保存为。

  JFileChooser fc = new JFileChooser();

    int resp = fc.showSaveDialog(fc);

    if (resp == JFileChooser.APPROVE_OPTION) {
        PrintStream fileOut = null;
        try {

            File file = fc.getSelectedFile();

            fileOut = new PrintStream(file);

            fileOut.print(txtArea.getText());
        } catch (FileNotFoundException ex) {
            Logger.getLogger(frmNotePad.class.getName()).log(Level.SEVERE, null, ex);
        } finally {

            fileOut.close();
        }

2 个答案:

答案 0 :(得分:0)

如果你想将保存作为保存的替代,让程序存储一个File对象,引用当前打开的文件的路径,这样程序总是知道它正在编辑什么,然后只需写入程序文件变量

答案 1 :(得分:0)

改变你的工作流程。

基本上,当您第一次保存文件时,您需要保留对您保存到的File的引用...

public class ... {
   private File currentFile;

现在,当您去保存文件时,您需要检查currentFile是否为null。它是null,你要求用户选择一个文件,否则你可以继续尝试保存文件...

if (currentFile == null) {

    JFileChooser fc = new JFileChooser();
    int resp = fc.showSaveDialog(fc);

    if (resp == JFileChooser.APPROVE_OPTION) {
        currentFile = fc.getSelectedFile();
    }

}

// Used to make sure that the user didn't cancel the JFileChooser
if (currentFile != null) {
    PrintStream fileOut = null;
    try {
        fileOut = new PrintStream(file);
        fileOut.print(txtArea.getText());
    } catch (IOException ex) {
        Logger.getLogger(frmNotePad.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
        try {
            fileOut.close();
        } catch (IOException exp) {
        }
    }