Java 写入包中的.txt文件
我想写入一个包中的.txt文件。我可以让它从存储.txt文件的确切位置读取,但不能从包内读取。我假设它正在使用类装入器,但我似乎无法让它工作。 这是我到目前为止所拥有的Java 写入包中的.txt文件,java,Java,我想写入一个包中的.txt文件。我可以让它从存储.txt文件的确切位置读取,但不能从包内读取。我假设它正在使用类装入器,但我似乎无法让它工作。 这是我到目前为止所拥有的 public void writeFile(String fileLocation) { Writer output = null; File file = new File(fileLocation); try { output = new BufferedWriter(new File
public void writeFile(String fileLocation) {
Writer output = null;
File file = new File(fileLocation);
try {
output = new BufferedWriter(new FileWriter(file));
output.append("WRITING TEST");
output.close();
} catch (IOException ex) {
System.out.println("Couldn't write to file.");
}
}
然后我在另一个类中使用它来编写
WriteFile writeFile = new WriteFile();
writeFile.writeFile("src/com/game/scores.txt");
我理解,如果使用类加载器,您将删除“src/”,因为当程序在.jar中编译时,它将不再存在。您可以使用该包中的类来提供文件夹的位置。 试试像这样的东西
public URL getPackageLocation() {
return getClass().getResource(".");
}
这将为您提供从中调用此方法的文件夹的位置。无法在jar中写入或更新文件。因为jar本身就是一个文件 请参考此链接
从注释中,您已经知道无法写入驻留在JAR文件中的文件。充其量只能创建文件,相对于JAR所在的路径,如下所示:
mylocation
|-- my-jar.jar
|-- com
|--game
|--myfile.txt
我想写信给它,以更新我的游戏中的分数作为
用户通过级别
虽然有可能,但我不建议在这个用例中使用它。只要把它写在:
Path userdir = Paths.get(System.getProperty("user.home"), ".myApp", "<my app version>");
Path userdir=Path.get(System.getProperty(“user.home”)、“.myApp”和“);
您不能写入Jar文件。不建议写入Jar文件。您可以在jar文件之外进行写入
有关更多详细信息,请参阅和堆栈溢出问题。我不确定您在问什么。您是否正在尝试写入资源?我不确定是否有一种通用的方法可以对Java包层次结构中的文件进行写入。如果该文件在JAR文件中会怎样?该文件将在.JAR文件中。我想在用户通过关卡时给它写信来更新我游戏中的分数。你不能给jars@user3080274内的文件写信:这也不是一个好主意。代码和变量数据不应该像这样强制在一起……您可以通过这种方式获得.jar文件中的文件位置(我已经多次使用它来调用图像等等)。但是,我认为您不能在jar中编辑.txt文件。