写入从getResourceAsStream()返回的文件流

And*_*ech 20 java file-io web-services

我得到InputStream了一个getResourceAsStream(),我设法通过传递返回InputStream到文件读取BufferedReader.

有什么方法可以写入文件吗?

ska*_*man 33

不直接,否 - getResourceAsStream()旨在返回只读资源的视图.

但是,如果你知道资源是一个可写文件,你可以跳过一些箍,例如

URL resourceUrl = getClass().getResource(path);
File file = new File(resourceUrl.toURI());
OutputStream output = new FileOutputStream(file);
Run Code Online (Sandbox Code Playgroud)

这应该适用于unix风格的系统,但Windows文件路径可能会导致这种消化不良.尝试一下,然后找出答案,你可能没问题.


Mic*_*rdt 10

有什么方法可以写入文件吗?

谁说这是一个档案?最重要的getResourceAsStream()是将其抽象出去,因为它可能不是真的.具体而言,资源可以位于JAR文件中,可以从HTTP服务器读取,或者实际上ClassLoader可以想象的任何实现者.

你真的不应该写入的资源这是你的计划分配的一部分.在大多数情况下,这在概念上是错误的.设置或用户特定数据应该转到Preferences API或用户的主目录.

  • 这个答案没有提供答案.这应该是一个评论. (3认同)