我最近试图将我的游戏导出到jar文件,然后我遇到了将文件转换为输入和输出流的问题。使用未导出的常规代码,只需使用File位置调用Scanner和PrintStream构造函数,即可读取和写入文本文件。这在jar中没有用,因为显然这些不再被视为文件。通过这样做,我能够解决输入流:
Scanner infile = new Scanner(this.getClass().getResourceAsStream("Resources/leaderboard.txt"));
而不是,
Scanner infile = new Scanner("Resources/leaderboard.txt");
我正在尝试使用PrintStream,但到目前为止,我还没有找到一个等效的函数,它将接受一个String位置并为PrintStream构造函数返回一个OutputStream。我应该使用不同的方法写入jar中的文本文件,是否有将其转换为我尚未看到的OutputStream的函数或方法,还是应该避免完全打印到文本文件? 提前谢谢。
答案 0 :(得分:4)
你不应该为实际目的写一个"文件"在jar文件中。是的,有一些kludges允许你解决这个问题,但它们不应该被实现。相反,程序可能更改的所有文件都应该在jar之外,并且应该是单独的文件。