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

发布于 2024-08-24 13:28:30 字数 122 浏览 6 评论 0原文

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

谢谢。

I have written a Java program that opens all kind of files with a JFileChooser. Then I want to save it in another directory with the JFileChooser save dialog, but it only saves an empty file. What can I do for saving part?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夜司空 2024-08-31 13:28:30

JFileChooser 仅返回 File 对象,您必须打开 FileWriter 并将内容实际写入其中。

例如

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

编辑:

假设您只有一个源文件和目标文件,并且想要在两者之间复制内容,我建议使用类似 FileUtils 来自 Apache 的 Commons IO 来完成繁重的工作。

例如

FileUtils.copy(source, dest);

完成!

JFileChooser just returns the File object, you'll have to open a FileWriter and actually write the contents to it.

E.g.

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

Edit:

Assuming that you simply have a source file and destination file and want to copy the contents between the two, I'd recommend using something like FileUtils from Apache's Commons IO to do the heavy lifting.

E.g.

FileUtils.copy(source, dest);

Done!

世界和平 2024-08-31 13:28:30

除了 Kris 的回答 - 我猜,你还没有读取文件的内容。基本上,您必须执行以下操作才能使用 java 和 JFileChooser 复制文件: 使用

  1. FileChooser 选择文件。这将返回一个 File 对象,或多或少是文件的文件名的包装类。
  2. 使用 FileReader 和 File 来获取内容。将其存储在字符串或字节数组或其他内容中
  3. 使用 FileChooser 选择目标文件。这再次返回一个 File 对象
  4. 使用 FileWriter 和目标 File 将上面的字符串或字节数组存储到该文件。

文件打开对话框不会将文件内容读入内存 - 它只是返回一个代表该文件的对象。

Just in addition to Kris' answer - I guess, you didn't read the contents of the file yet. Basically you have to do the following to copy a file with java and using JFileChooser:

  1. Select the source file with the FileChooser. This returns a File object, more or less a wrapper class for the file's filename
  2. Use a FileReader with the File to get the contents. Store it in a String or a byte array or something else
  3. Select the target file with the FileChooser. This again returns a File object
  4. Use a FileWriter with the target File to store the String or byte array from above to that file.

The File Open Dialog does not read the contents of the file into memory - it just returns an object, that represents the file.

老娘不死你永远是小三 2024-08-31 13:28:30

类似的东西..

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)
{ }

Something like..

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)
{ }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文