我当前正在尝试将新创建的文本文件保存到用户指定的目录中。但是,我不明白此代码设置如何可能。在哪里指定文件的保存位置?
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();
}
最佳答案
FileChooser
和 FileWriter
让事情变得相当简单,这里是 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/