java 在资源目录中创建新文件

pnwntuvh  于 2023-04-19  发布在  Java
关注(0)|答案(1)|浏览(201)

任务是在现有的资源文件夹中创建一个新文件(例如,命名为“local”)

File file1 = new File("src/main/resources/" + "local" + "/" + "newFile.zip");
  file1.createNewFile();

但是没有创建任何东西,也没有抛出任何异常。
我也试过创建,通过使用绝对路径。

File file1 = new File(File("src/main/resources/").getAbsolutePath() + "/" + "local" + "/" + "newFile.zip");
  file1.createNewFile();

但结果是一样的。
我做错了什么?

umuewwlo

umuewwlo1#

一个程序应该永远不要试图修改自己。

  • src/main/resources目录被称为“源代码”是有原因的。源代码被编译成一个单独的程序。该程序只包含可执行程序(类文件和数据),而不包含源代码。
  • Java程序以.jar文件(或由.jar文件生成的jlink图像)的形式分发。.jar文件是**一个文件,**具体地说是一个归档文件,它的各个条目不是文件,不可写。

总而言之:当其他人运行你的代码时,你不能修改任何东西。
持久化用户数据的正确方法是将其写入known location,通常位于用户主目录下的某个位置。
将只读默认数据与应用程序捆绑在一起是完全可以接受的,如果在用户的已知位置找不到文件,就会使用这些数据。

相关问题