java - 保存到特定目录

标签 java file text directory save

我当前正在尝试将新创建的文本文件保存到用户指定的目录中。但是,我不明白此代码设置如何可能。在哪里指定文件的保存位置?

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();
}

最佳答案

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)。

关于java - 保存到特定目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6702126/

相关文章:

java - Ggts 内存不足错误

java - android - 检测低网络信号,依赖哪个值

java - 在 Android 上访问原始 GPS 数据

java - FileInputStream(file) 返回 ENOENT(没有这样的文件或目录)android

c++ - 使用 Xerces 从内存中加载 xml

mysql - 如何在 MySQL Workbench 中将 "7-1-2014"转换为 "07-01-2014"?

java - ListMultimap 不保留插入顺序

linux - Bash 将大文件拆分为较小的文件

c - 将数据关联到文本文件

javascript - 在文本框中概述用户文本输入