文件的拷贝:一次读一个字节
代码演示:
package a01bytestreamdemo;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class ByteStreamDemo6 {
public static void main(String[] args) throws IOException {
FileInputStream fis=new FileInputStream("Test\\a.txt");
FileOutputStream fos=new FileOutputStream("E:\\JAVA\\24_3_31\\basic_code\\aaa\\a.txt");
//拷贝数据
//核心:边读边写
int b;
while((b=fis.read())!=-1){
fos.write(b);
}
//释放资源:
//原则:先开的最后关闭
fos.close();
fis.close();
}
}
运行结果:
FileInputStream一次读多个字节
代码演示:
package a01bytestreamdemo;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class ByteStreamDemo7 {
public static void main(String[] args) throws IOException {
//1.创建对象
FileInputStream fis=new FileInputStream("Test\\a.txt");
//2.读取数据
byte[] bytes=new byte[2];
//一次读取多个字节数据,具体读多少跟数组的长度有关
//返回值:本次读取到了多少个字节数据
int len1 = fis.read(bytes);
System.out.println(len1);
String str1=new String(bytes,0,len1);
System.out.println(str1);
int len2 = fis.read(bytes);
System.out.println(len2);
String str2=new String(bytes,0,len2);
System.out.println(str2);
int len3 = fis.read(bytes);
System.out.println(len3);
String str3=new String(bytes,0,len3);
System.out.println(str3);
fis.close();
}
}
运行结果:
练习:文件拷贝,一次拷贝一个字节数组
package a01bytestreamdemo;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class ByteStreamDemo8 {
public static void main(String[] args) throws IOException {
long start = System.currentTimeMillis();
FileInputStream fis=new FileInputStream("Test\\a.txt");
FileOutputStream fos=new FileOutputStream("E:\\JAVA\\24_3_31\\basic_code\\aaa\\a.txt");
int len;
byte[] bytes=new byte[1024*1024*5];
while((len=fis.read(bytes))!=-1){
fos.write(bytes,0,len);
}
fos.close();
fis.close();
long end = System.currentTimeMillis();
System.out.println(end-start);//6 毫秒
}
}
运行结果: