Java输入输出之字节流拷贝文件
步骤:
1.构造文件字节输入输出流
2.创建一个字节数组,用来指定每次复制的字节大小
3.输入流从源文件读取字节,输出流将字节写入文件
下面通过一段程序进行说明:
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class JavaIO { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream( "E:\\Download\\struts-2.3.1.2-all.zip"); FileOutputStream fos = new FileOutputStream("E:\\a.zip"); byte[] b = new byte[1024000]; int n; while ((n = fis.read(b)) != -1) { fos.write(b, 0, n); } fis.close(); fos.close(); } }
fis.read(b)的作用是从源文件最多读取b.length字节的数据送给b数组,返回的是读入的字节总数。
本例中b.length的长度指定为1024000,当最后一次不足1024000,例如只剩下5000字节时,返回的就是5000,此时所有字节读取完毕。下一次读入时由于已到达文件末尾,返回-1。
fos.write(b, 0, n)意思是将byte数组从偏移量0开始的n个字节写入文件输出流。
程序结束后记得要关闭输入输出流。