I/O 入门

一次调用将 InputStream 复制到 OutputStream。

✕ Java 8
byte[] buf = new byte[8192];
int n;
while ((n = input.read(buf)) != -1) {
    output.write(buf, 0, n);
}
✓ Java 9+
input.transferTo(output);
发现此代码有问题? 告诉我们。
📏

一行代码

用一次方法调用替代整个读写循环。

🧹

无手动缓冲区

不需要 byte[] buffer 或循环计数器。

🛡️

正确处理

正确处理部分读取和流结束。

旧方式
手动复制循环
现代方式
transferTo()
自 JDK
9
难度
入门
InputStream.transferTo()
可用

自 JDK 9 起广泛可用(2017 年 9 月)

transferTo() 从输入流读取所有字节并写入输出流。内部使用高效的缓冲区,无需手动分配缓冲区数组或循环。

分享 𝕏 🦋 in