将文件保存到特定路径(Java)

将文件保存到特定路径(Java),java,file,path,save,store,Java,File,Path,Save,Store,当我将其作为jar运行时,这个.properties文件是在桌面上创建的。为了保持整洁,我如何设置将此文件保存到其他位置(如文件夹)的路径?甚至罐子本身,但我很难让它工作。我打算把这个给别人,不希望他们的桌面被.properties文件弄得乱七八糟 import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Properties; publi

当我将其作为jar运行时,这个.properties文件是在桌面上创建的。为了保持整洁,我如何设置将此文件保存到其他位置(如文件夹)的路径?甚至罐子本身,但我很难让它工作。我打算把这个给别人,不希望他们的桌面被.properties文件弄得乱七八糟

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Properties;

public class DataFile {
public static void main(String[] args) {

    Properties prop = new Properties();
    OutputStream output = null;

    try {

        output = new FileOutputStream("config.properties");

        prop.setProperty("prop1", "000");
        prop.setProperty("prop2", "000");
        prop.setProperty("prop3", "000");

        prop.store(output, null);

    } catch (IOException io) {
        io.printStackTrace();
    } finally {
        if (output != null) {
            try {
                output.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
  }     
}

由于使用的文件名没有路径,因此创建的文件以CWD结尾。这是进程从操作系统继承的当前工作目录。 也就是说,您从桌面目录执行jar文件。使用相对路径的任何文件都将在桌面或其任何子目录中结束

要控制文件的绝对位置,必须使用绝对路径。 绝对路径始终以斜杠“/”开头

绝对路径:

/etc/config.properties
相对路径:

sub_dir/config.properties
最简单的方法是将一些路径硬编码到文件路径字符串中

output=newfileoutputstream/etc/config.properties

当然,您可以在属性中设置路径,您可以使用命令行传递该路径,而不是对其进行硬编码。用户可以将路径名和文件名放在一起

String path = "/etc";
String full_path = "/etc" + "/" + "config.properties";
output = new FileOutputStream(full_path);
请注意,java中的windows路径使用正斜杠而不是反斜杠。 查看此项了解更多详细信息

这是干什么用的?也许属性文件更合适?我只是用它来存储用户输入的一些信息,以便下次运行程序时不会删除这些信息。您有两个选择,更改启动程序的链接的起始引用或指定绝对路径引用