将Java InputStream的内容写入OutputStream的简便方法是使用Java的IO库中的java.nio
包中的java.nio.channels.Channels
和java.nio.channels.WritableByteChannel
接口。具体实现如下:
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.channels.Channels;
import java.nio.channels.WritableByteChannel;
public class InputStreamToOutputStream {
public static void copy(InputStream input, OutputStream output) {
WritableByteChannel outChannel = Channels.newChannel(output);
try {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = input.read(buffer)) != -1) {
outChannel.write(ByteBuffer.wrap(buffer, 0, bytesRead));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
outChannel.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
这个方法将InputStream中的内容复制到OutputStream中,使用了Java的NIO库,可以有效地处理大量数据。在使用时,只需要将InputStream和OutputStream传递给copy
方法即可。
InputStream input = new FileInputStream("input.txt");
OutputStream output = new FileOutputStream("output.txt");
InputStreamToOutputStream.copy(input, output);
这个方法可以用于处理各种类型的InputStream和OutputStream,包括文件、网络连接、内存缓冲区等。
领取专属 10元无门槛券
手把手带您无忧上云