如何使用 JFileChooser 保存 file.txt?

Posted

技术标签:

【中文标题】如何使用 JFileChooser 保存 file.txt?【英文标题】:How to save file.txt with JFileChooser? 【发布时间】:2014-10-08 23:16:25 【问题描述】:

我正在开发记事本项目,想知道如何保存文件.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();
        

【问题讨论】:

【参考方案1】:

改变你的工作流程。

基本上,当您第一次保存文件时,您需要保留对您保存到的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) 
        
    

【讨论】:

【参考方案2】:

如果您希望另存为另存为,请让程序存储一个引用当前打开文件路径的文件对象,以便程序始终知道它正在编辑什么,然后只需写入程序文件变量

【讨论】:

以上是关于如何使用 JFileChooser 保存 file.txt?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 JFileChooser 将 Icon 对象保存到文件中?

如何在 JFileChooser 保存对话框中处理问号或星号(“?”或“*”)?

使用 JFileChooser 保存

取消在 JFileChooser 中选择文件而不关闭对话框

JFileChooser保存对话框建议文件名[重复]

JFileChooser - 自定义文件名(创建新文件)