将Java InputStream的内容写入OutputStream的简单方法

将Java InputStream的内容写入OutputStream的简单方法

今天我惊讶地发现,我无法找到任何简单的方法来编写InputStream转到OutputStream在爪哇。显然,字节缓冲区代码编写起来并不困难,但我想我只是缺少了一些可以让我的生活变得更简单(而且代码更清晰)的东西。

所以,考虑到InputStream in和一个OutputStream out,是否有更简单的方法来编写以下内容?

byte[] buffer = new byte[1024];int len = in.read(buffer);while (len != -1) {
    out.write(buffer, 0, len);
    len = in.read(buffer);}


红糖糍粑
浏览 6922回答 3
3回答

陪伴而非守候

如果您使用的是Java 7,档案(在标准库中)是最好的方法:/* You can get Path from file also: file.toPath() */Files.copy(InputStream in, Path target)Files.copy(Path source, OutputStream out)编辑:当然,当您从文件中创建InputStream或OutputStream时,它非常有用。使用file.toPath()从文件中获取路径。写入现有文件(例如用File.createTempFile()),您需要通过REPLACE_EXISTING复制选项(否则)FileAlreadyExistsException被抛出):Files.copy(in, target, StandardCopyOption.REPLACE_EXISTING)
打开App,查看更多内容
随时随地看视频慕课网APP