0

很确定这应该很容易,但我无法写入文件。不抛出任何 I/O 异常。我之前在阅读时遇到了类似的问题,我尝试了一百种不同的方法,直到

DataInputStream dis = new DataInputStream(reading.class.getResourceAsStream("hello.txt"); BufferedReader input = new BufferedReader(new InputStreamreader(dis));

这行得通!我可以使用扫描仪等从这一点开始阅读。

FileReader,做File file = new File("hello.txt")任何事情,都没有奏效。当文件名不正确时,我什至无法得到任何错误。

现在除了写入文件之外,我遇到了同样的问题,但没有任何等价 reading.class.getResourceAsStream("hello.txt");物可以生成 /output/ 流。

有谁知道如何获得“ResourceAsStream”,但作为输出流,/或/有谁知道我的问题可能是什么?

我知道这个网站上的很多人都有阅读/写作问题,但没有一篇文章对我有帮助。注意 - 是的,我正在关闭,是的,我正在冲洗,是的,我有写入文件的代码。

4

1 回答 1

0

GetResourceAsStream 旨在读取与代码一起分发和打包的资源(例如属性文件)。不能保证它们处于可写模式,例如代码和资源都可以作为 jar 或 jar-inside-a-WAR-inside-an-EAR 分发...

请参阅此处写入从 getResourceAsStream() 返回的文件流 以获取更多讨论和解决方法建议,尽管恕我直言,这不是很推荐。我认为合理的做法是区分(a)您的不可变代码分布(b)在运行时可编辑的数据......后者可能驻留在不同的机器上,对安全/复制/备份等具有不同的策略。

于 2015-10-21T06:03:31.540 回答