将 Java 代码生成的文件保存到用户定义的位置,例如下载功能
Posted
技术标签:
【中文标题】将 Java 代码生成的文件保存到用户定义的位置,例如下载功能【英文标题】:Saving file generated from Java Code to user defined location like download Functionality 【发布时间】:2014-10-24 08:12:31 【问题描述】:我有一个要求,我必须保存我使用我的 java 代码生成的文件,但是当我想保存它时,我想让用户决定他们想要保存它的位置。就像下载选项一样我们从 Internet 下载文件。我尝试使用 JFileChooser
。但它不能按照我想要的方式工作。有人可以帮忙吗?
我正在创建类似的文件
try
writer= new PrintWriter("F://map.txt", "UTF-8");
catch(Exception e)
e.printStackTrace();
JFileChooser fileChooser = new JFileChooser();
fileChooser.setDialogTitle("Specify a file to save");
JFrame parentFrame = new JFrame();
int userSelection = fileChooser.showSaveDialog(parentFrame);
if (userSelection == JFileChooser.APPROVE_OPTION)
File fileToSave = fileChooser.getSelectedFile();
System.out.println("Save as file: " + fileToSave.getAbsolutePath());
【问题讨论】:
我在您的帖子中没有看到任何与 JFileChooser 相关的代码? @KickButtowsk 我已经放了代码。当我使用这个代码时。它只是要求我选择要保存的文件。我希望我的特定文件保存在用户指定的位置 【参考方案1】:写入文件
请注意,如果文件存在,这将覆盖文件,如果存在,它不会自动提示您输入 sh*t。你必须自己检查它是否存在。
byte dataToWrite[] = // source
FileOutputStream out = new FileOutputStream("the-file-name");
out.write(dataToWrite);
out.close();
在你的情况下,这可能会读作
if (userSelection == JFileChooser.APPROVE_OPTION)
File fileToSave = fileChooser.getSelectedFile();
System.out.println("Save as file: " + fileToSave.getAbsolutePath());
FileInputStream in = null;
FileOutputStream out = null;
try
in = new FileInputStream(source);
out = new FileOutputStream(fileToSave.getPath());
byte[] buffer = new byte[1024];
int length;
while ((length = in.read(buffer)) > 0)
out.write(buffer, 0, length);
finally
if (in != null) in.close();
if (out != null) out.close();
请注意,这是未经测试的代码,我对这些东西没有真正的常规。如果这被证明是错误的代码,你应该用谷歌搜索“java write file”或类似的东西:)
【讨论】:
@user3678399 在这种情况下,请将答案标记为解决方案:) @user3678399:这里一样,请接受这个答案。以上是关于将 Java 代码生成的文件保存到用户定义的位置,例如下载功能的主要内容,如果未能解决你的问题,请参考以下文章
iTextSharp `save as` 保存到用户定义的位置