保存到特定目录

Posted

技术标签:

【中文标题】保存到特定目录【英文标题】:Saving to a specific directory 【发布时间】:2011-07-15 02:35:13 【问题描述】:

我目前正在尝试将新创建的文本文件保存到用户指定的目录中。但是,我看不出如何使用此代码设置。在哪里指定文件要保存在哪里?

if(arg.equals(Editor.fileLabels[1]))
    if(Editor.VERBOSE)
        System.err.println(Editor.fileLabels[1] + 
                " has been selected");
    filedialog = new FileDialog(editor, "Save File Dialog", FileDialog.SAVE); 
    filedialog.setVisible(true);
    if(Editor.VERBOSE)
        System.err.println("Exited filedialog.setVisible(true);");
        System.err.println("Save file = " + filedialog.getFile());
        System.err.println("Save directory = " + filedialog.getDirectory());
    
    File file = new File("" + filedialog.getName());
    SimpleFileWriter writer =     SimpleFileWriter.openFileForWriting(filedialog.getFile() + ".txt"); 
    if (writer == null)
        System.out.println("Failed.");
    
    writer.print("" + this.editor.getTextArea().getText());
    writer.close();

【问题讨论】:

【参考方案1】:

FileChooserFileWriter 让事情变得相当简单,这里是 java 教程:

http://download.oracle.com/javase/tutorial/uiswing/components/filechooser.html http://www.abbeyworkshop.com/howto/java/writeText/index.html

你这样称呼它:

JFileChooser fc = new JFileChooser();

int returnVal = fc.showOpenDialog(aComponent);

if (returnVal == JFileChooser.APPROVE_OPTION) 

    File toSave = fc.getSelectedFile();

    FileWriter outWriter = new FileWriter(toSave);
    PrintWriter outPrinter = new PrintWriter(outWriter);

    outPrinter.println("" + this.editor.getTextArea().getText());

else

    //user pressed cancel

请记住,实际打印的是 PrintWriter 类。

编辑:

如果您希望用户只选择目录,请调用

fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

在显示之前。请注意,在这种情况下,您必须在该目录中指定一个新的 File 对象才能向其写入文本(尝试将文本写入目录将导致 IOException)。

【讨论】:

如果OP不清楚。使用选定的文件本身作为参数,将考虑文件名目录。 +1,获取文件选择器教程的链接。 -1,因为不使用 textArea.write(...) 方法(即不要重新发明***)。 也许在这个简单的案例中重新发明,但除了文本区域之外的任何东西,他都需要通用解决方案......【参考方案2】:

writer.print("" + this.editor.getTextArea().getText());

不要使用这样的方法。所有文本组件都支持 write(...) 方法。您所要做的就是获取要写入文件的文件名。

类似:

JtextArea textArea = new JTextArea(....);
....
FileWriter writer = new FileWriter( "TextAreaLoad.txt" ); // get the file name from the JFileChooser.
BufferedWriter bw = new BufferedWriter( writer );
textArea.write( bw );
bw.close();

如果您不知道如何使用文件选择器,请阅读 How to Use File Choosers 上的 Swing 教程中的部分。

【讨论】:

以上是关于保存到特定目录的主要内容,如果未能解决你的问题,请参考以下文章

Python脚本保存/复制到特定目录

Python + OpenCV - 将图像保存到特定目录

如何创建一个 VBA 宏,将某个文件保存到特定目录中的所有子文件夹中?

如何将 R 子文件保存到特定文件夹中?

c# savefiledialog 锁定到特定目录? [复制]

如何将R子文件保存到特定文件夹中?