使用JFileChooser保存对话框保存文件

时间:2010-03-04 08:11:38

标签: java swing jfilechooser

我编写了一个Java程序,用JFileChooser打开所有类型的文件。然后我想用JFileChooser保存对话框将它保存在另一个目录中,但它只保存一个空文件。我可以做些什么来节省一部分?

感谢。

3 个答案:

答案 0 :(得分:8)

JFileChooser只返回File对象,你必须打开一个FileWriter并实际写入内容。

E.g。

if (returnVal == JFileChooser.APPROVE_OPTION) {
   File file = fc.getSelectedFile();
   FileWriter fw = new FileWriter(file);
   fw.write(contents);
   // etc...
} 

编辑:

假设您只是拥有一个源文件和目标文件,并希望在两者之间复制内容,我建议您使用Apache FileUtils中的Commons IO之类的内容来完成繁重的工作。< / p>

E.g。

FileUtils.copy(source, dest);

完成!

答案 1 :(得分:2)

除了Kris' answer之外 - 我想,你还没有读过该文件的内容。基本上,您必须执行以下操作以使用Java复制文件并使用JFileChooser:

  1. 使用FileChooser选择来源文件。这将返回一个File对象,或多或少是文件文件名的包装类
  2. 将FileReader与File一起使用以获取内容。将其存储在String或字节数组或其他内容中
  3. 使用FileChooser选择目标文件。这又返回一个File对象
  4. 将FileWriter与目标File一起使用,将上面的String或byte数组存储到该文件中。
  5. 文件打开对话框不会将文件内容读入内存 - 它只返回一个表示文件的对象。

答案 2 :(得分:0)

像...这样的东西。

File file = fc.getSelectedFile();
String textToSave = mainTextPane.getText();
BufferedWriter writer = null;

try
{
writer = new BufferedWriter( new FileWriter(file));
writer.write(textToSave);
JOptionPane.showMessageDialog(this, "Message saved. (" + file.getName()+")",
"ImPhil HTML Editer - Page Saved",
JOptionPane.INFORMATION_MESSAGE);
}
catch  (IOException e)
{ }