将 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` 保存到用户定义的位置

java 将页面内容写入excel文件中并可以将其下载到本地任意位置

将相机图像保存在手机记忆库中的自定义位置

java怎么通过链接下载文件,然后保存到指定位置?

java怎么通过链接下载文件,然后保存到指定位置?

将音频文件保存到用户友好的位置 swift 3 avfoundation