代码之家  ›  专栏  ›  技术社区  ›  Andreas Grech

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

  •  19
  • Andreas Grech  · 技术社区  · 14 年前

    我得了A InputStream getResourceAsStream() 我通过传递返回的 输入流 到A BufferedReader .

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

    2 回复  |  直到 14 年前
        1
  •  32
  •   skaffman    14 年前

    不直接,不- getResourceAsStream() 用于返回只读资源的视图。

    如果您知道资源是一个可写文件,那么您可以跳过一些循环,例如

    URL resourceUrl = getClass().getResource(path);
    File file = new File(resourceUrl.toURI());
    OutputStream output = new FileOutputStream(file);
    

    这在UNIX风格的系统上应该可以很好地工作,但Windows文件路径可能会导致这种消化不良。不过,试试看,你可能没事。

        2
  •  10
  •   codepleb    9 年前

    我有什么办法可以写信给 还有文件吗?

    谁说是文件?整个要点 getResourceAsStream() 因为这很可能不是真的,所以把它抽象出来。具体来说,资源可以位于JAR文件中,可以从HTTP服务器读取,或者实际上是 ClassLoader 可以想象。

    你真的不应该 希望 写入属于程序分发的资源。在大多数情况下,这在概念上是错误的。设置或用户特定的数据应转到 Preferences API 或者用户的主目录。