首先,我想帮助编辑这个问题,因为我无法正确解释自己。
直接,我有一个通过套接字连接接收文件的应用程序,然后将它们保存在计算机中。问题是这个应用程序作为.jar文件运行,我不知道在FileOutputStream()
方法中使用什么文件目录。我目前正在使用“C:\ Users \ My_User \ Desktop \ My_Project ...”目录,但是一旦许多客户端将使用此目录并且目录可能会丢失,这取决于客户端(其中一些可能是Linux)同样)。
如何将文件保存在.jar所在的同一位置,而不必编写整个Windows目录?
谢谢,从现在开始
答案 0 :(得分:2)
假设:您正在通过双击运行可执行jar文件。
默认情况下,如果创建名为f.txt
的{{1}}对象,没有任何特定路径,则会在运行jar的同一目录中创建文件f.txt
。例如:
如果您在C:\Users\My_User\Desktop\My_Project
目录中运行jar,并且您的代码创建了一个文件f.txt
,如下所示:
File f = new File("f.txt");
然后f.txt
的位置将为C:\Users\My_User\Desktop\My_Project\f.txt
如果您想将文件存储在用户主目录中的特定位置,Zaki的答案会有所帮助。
答案 1 :(得分:2)
您可以使用例如:
final String RESOURCES_DIR = System.getProperty(" user.dir")+ File.separator + someSpecificLocation;
然后您可以使用RESOURCES_DIR创建文件作为目录+文件的名称。这会将您的文件保存在部署应用程序的同一目录中。