FileOutputStream 到 FileInputStream

新手上路,请多包涵

将 FileOutputStream 转换为 FileInputStream 的最简单方法是什么(一段代码会很棒)?

原文由 Pen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
1 个回答

这可能会帮助您:

http://ostermiller.org/convert_java_outputstream_inputstream.html

本文提到了 3 种可能性:

  • 将完整的输出写入字节数组,然后再次读取
  • 使用管道
  • 使用循环字节缓冲区(该页面上托管的库的一部分)

仅供参考,反过来做(输入到输出):

Apache Commons IO 的一个简单解决方案是:

 IOUtils.copyLarge(InputStream, OutputStream)

或者如果你只是想复制一个文件:

 FileUtils.copyFile(inFile,outFile);

如果您不想使用 Apache Commons IO,这里是 copyLarge 方法的作用:

 public static long copyLarge(InputStream input, OutputStream output) throws IOException
{
  byte[] buffer = new byte[4096];
  long count = 0L;
  int n = 0;
  while (-1 != (n = input.read(buffer))) {
   output.write(buffer, 0, n);
   count += n;
  }
  return count;
}

原文由 Thomas 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题