【发布时间】:2010-05-09 10:42:23
【问题描述】:
我从getResourceAsStream() 得到一个InputStream,我设法通过将返回的InputStream 传递给BufferedReader 来读取文件。
有什么方法我也可以写入文件吗?
【问题讨论】:
标签: java web-services file-io
我从getResourceAsStream() 得到一个InputStream,我设法通过将返回的InputStream 传递给BufferedReader 来读取文件。
有什么方法我也可以写入文件吗?
【问题讨论】:
标签: java web-services file-io
不直接,不 - getResourceAsStream() 旨在返回只读资源的视图。
但是,如果您知道资源是可写文件,则可以跳过一些环节,例如
URL resourceUrl = getClass().getResource(path);
File file = new File(resourceUrl.toURI());
OutputStream output = new FileOutputStream(file);
这在 unix 风格的系统上应该可以很好地工作,但是 windows 文件路径可能会导致这种消化不良。试试看,你可能会没事的。
【讨论】:
toUri() 中添加toString():new File(resourceUrl.toURI().toString());。但是现在,FileNoFoundException 在第三行被抛出:"vfszip:\C:\jboss-5.1.0.GA\server\default\deploy\IMAss4.war\WEB-INF\classes\wservices\markers.txt (The filename, directory name, or volume label syntax is incorrect)"
Web Pages 文件夹中并从我的Web 服务读取/写入它? (查看我的问题,了解我的文档结构:stackoverflow.com/questions/2797162/…)
有什么办法可以写信给 文件呢?
谁说这是一个文件? getResourceAsStream() 的全部意义在于将其抽象出来,因为它可能不是真的。具体来说,资源可能位于 JAR 文件中,可能是从 HTTP 服务器读取的,或者实际上是 ClassLoader 的实现者可以想象的任何东西。
您真的不应该想要写入属于您的程序分发的一部分的资源。在大多数情况下,这在概念上是错误的。设置或用户特定数据应转到Preferences API 或用户的主目录。
【讨论】:
Web Pages 文件夹中?来自网络服务即