【问题标题】:Java: Write to an OutputStream though FileJava:通过文件写入输出流
【发布时间】:2012-06-12 10:12:52
【问题描述】:

我不确定这是否可以实现。

我有一个第三方库,它有一个接受 File 的函数:

String function(File file);

此功能将简单地从云端下载一些内容并写入该文件。

现在,我有一个特殊的OutputStream,它在内部计算文件的 MD5。当数据通过流时,会计算 MD5。

由于我无法更改库的签名,我是否仍然可以使用接受文件的功能,但让数据通过我的OutputStream

【问题讨论】:

  • 既然你是调用这两种方法的人,你就不能访问file对象吗?

标签: java file md5 outputstream


【解决方案1】:

不是以独立于平台的方式使用标准 API。

在 *nix(也可能是 windows)中,您可以创建一个 LIFO 文件,将其传递给库函数,您可以自己阅读该文件。

【讨论】:

    【解决方案2】:

    下载lib源,修改并编译JAR文件。 输出流并不意味着这是一个文件。可以是任何东西。

    【讨论】:

    • 你假设这个库是开源的。
    • 是的,使用封闭源代码库来计算 MD5 校验和是没有意义的。
    • 该库不进行 md5 计算。重新阅读问题。
    • 可以包装输出流来实现这一点。
    【解决方案3】:

    如果您无法访问库的源代码,您别无选择,只能在库函数写入文件后读取文件。当然,前提是该库不提供写入 OutputStream 而不是直接使用文件的函数。

    【讨论】:

      猜你喜欢
      • 2018-05-25
      • 2012-05-16
      • 2012-04-02
      • 2013-04-03
      • 1970-01-01
      • 1970-01-01
      • 2019-06-14
      • 2015-08-22
      • 1970-01-01
      相关资源
      最近更新 更多