Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java FileOutputStream:相对于程序文件夹的路径?_Java_File_Path_Fileoutputstream - Fatal编程技术网

Java FileOutputStream:相对于程序文件夹的路径?

Java FileOutputStream:相对于程序文件夹的路径?,java,file,path,fileoutputstream,Java,File,Path,Fileoutputstream,找到相对于“安装”java应用程序的文件夹的路径的最佳方法是什么 我有一个带有静态方法的类:publicstaticvoidsavetofile(stringfilename) 当我用绝对路径调用它时,它可以工作,但我真正想要的是运行应用程序的相对路径和文件夹 我还没有部署我的应用程序,但现在我想找到一个相对于(Netbeans)项目根目录的路径,以及一个名为data:ProjectName\data\file.dat的文件夹。我应该使用文件类还是将其变成URI或其他什么 请注意,我希望它是独立

找到相对于“安装”java应用程序的文件夹的路径的最佳方法是什么

我有一个带有静态方法的类:
publicstaticvoidsavetofile(stringfilename)

当我用绝对路径调用它时,它可以工作,但我真正想要的是运行应用程序的相对路径和文件夹

我还没有部署我的应用程序,但现在我想找到一个相对于(Netbeans)项目根目录的路径,以及一个名为data:ProjectName\data\file.dat的文件夹。我应该使用
文件
类还是将其变成
URI
或其他什么

请注意,我希望它是独立于系统的,并且在部署应用程序时仍然可以工作。最终,(相对)路径名将存储在属性文件中


抱歉,如果此问题重复,请提供帮助。

要查找当前工作目录的相对路径,请说
新文件(“.”

如果您想知道当前工作目录的绝对路径,可以编写
新文件(“.”).getAbsolutePath()
或文件(“.”.getAbsoluteFile()`


我希望这能回答你的问题。很抱歉,如果我没有正确理解您的意思。

如果您部署为jar,则可以获得当前代码所使用的jar文件名和路径,如下所示:

new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath());
(来自)

找到相对于“安装”java应用程序的文件夹的路径的最佳方法是什么

操作系统制造商长期以来一直表示不要将文件保存在应用程序目录中

请注意,我希望它是独立于系统的,并且在部署应用程序时仍然可以工作

而是将
文件
放入
user.home
子目录
。用户主页是可以建立可读或可写文件对象的地方。它也是一个可以跨运行复制的、独立于平台的地方。

给你:

String path = System.getProperty("user.dir");

要获取文件的绝对路径,请使用new file().getCanonicalFile()


你没有正确理解。他想要的是程序路径,而不是工作目录。我尝试使用
“+File.separator+”data“+File.separator+”File.dat”
,但它不起作用……好吧,我用一个文件尝试了一下,我打印了绝对路径,它绝对正确,不起作用。。。它根据需要返回
C:\blah\projectName\data\file.dat
…使用文件(“./filename”)。它指向../workspace/myWorkingProject/filename
new FileOutputStream(new File(".\\target\\dataset.xml").getCanonicalFile())