// 方法一 // 复制原始流 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()方法,不但会关闭流,还会再关闭流之前刷新缓冲区,关闭后不能再写出 // 注:带缓冲区的流对象若没有关闭流,则可能会导致缓冲区中的部分数据未刷新到文件中,导致写出数据丢失