写入 jar 文件中的文本文件
Writing to a text file within a jar file
我最近试图将我的游戏导出到 jar 文件,但我 运行 遇到了将文件转换为输入和输出流的问题。使用未导出的常规代码,我可以通过简单地使用文件位置调用扫描仪和打印流构造函数来读取和写入文本文件。这在罐子里不起作用,因为显然这些不再被视为文件。通过这样做,我能够解决输入流问题:
Scanner infile = new Scanner(this.getClass().getResourceAsStream("Resources/leaderboard.txt"));
相对于,
Scanner infile = new Scanner("Resources/leaderboard.txt");
我正在尝试使用 PrintStream,但到目前为止,我还没有找到一个等效的函数,它将接受 String 位置和 return PrintStream 构造函数的 OutputStream。我是否应该使用不同的方法写入 jar 中的文本文件,是否有将其转换为我尚未看到的 OutputStream 的函数或方法,或者我是否应该完全避免打印到文本文件?
提前致谢。
您不应该并且出于实际目的不能写入 jar 文件中的 "file"。是的,有一些方法可以让你绕过这个问题,但它们不应该被实施。相反,程序可能更改的所有文件都应该在 jar 之外,并且应该是单独的文件。
我最近试图将我的游戏导出到 jar 文件,但我 运行 遇到了将文件转换为输入和输出流的问题。使用未导出的常规代码,我可以通过简单地使用文件位置调用扫描仪和打印流构造函数来读取和写入文本文件。这在罐子里不起作用,因为显然这些不再被视为文件。通过这样做,我能够解决输入流问题:
Scanner infile = new Scanner(this.getClass().getResourceAsStream("Resources/leaderboard.txt"));
相对于,
Scanner infile = new Scanner("Resources/leaderboard.txt");
我正在尝试使用 PrintStream,但到目前为止,我还没有找到一个等效的函数,它将接受 String 位置和 return PrintStream 构造函数的 OutputStream。我是否应该使用不同的方法写入 jar 中的文本文件,是否有将其转换为我尚未看到的 OutputStream 的函数或方法,或者我是否应该完全避免打印到文本文件? 提前致谢。
您不应该并且出于实际目的不能写入 jar 文件中的 "file"。是的,有一些方法可以让你绕过这个问题,但它们不应该被实施。相反,程序可能更改的所有文件都应该在 jar 之外,并且应该是单独的文件。