//
方法一
//
复制原始流
InputStream inputStream = file.getInputStream();
//
InputStream 多个流...... = file.getInputStream();
//
创建接收流对象
OutputStream outputStream =
new
FileOutputStream("需要写入文件的路径"
);
//
写入文件
inputStream.transferTo(outputStream);
//
方法二
//
缓冲流
//
BufferedOutputStream也内置了一个缓冲区(数组),
//
程序向流中写出字节时, 不会直接写到文件, 先写到缓冲区中,
//
直到缓冲区写满, BufferedOutputStream才会把缓冲区中的数据一次性写到文件里。
BufferedInputStream bis =
new
BufferedInputStream(file.getInputStream());
BufferedOutputStream bos
=
new
BufferedOutputStream(
new
FileOutputStream("需要写入文件的路径"
));
int
b;
while
((b = bis.read()) != -1
) {
bos.write(b);
bis.transferTo(bos);
bis.close();
bos.close();
//
补充知识
//
flush和close方法的区别
//
flush()方法
//
用来刷新缓冲区的,刷新后可以再次写出,同一文件这样就可以多次写入
//
close()方法
//
用来关闭流释放资源的,如果是带缓冲区的流对象的close()方法,不但会关闭流,还会再关闭流之前刷新缓冲区,关闭后不能再写出
//
注:带缓冲区的流对象若没有关闭流,则可能会导致缓冲区中的部分数据未刷新到文件中,导致写出数据丢失