一:创建方式

1、建立输入(读)对象,并绑定数据源

2、建立输出(写)对象,并绑定目的地

3、将读到的内容遍历出来,然后在通过字符或者字节写入

4、资源访问过后关闭,先创建的后关闭,后创建的先关闭

总结:创建的方式都是差不多的,只不过是使用的输入和输出流不一样。

二:四种流复制文件的例子

1、字节流复制文件

 //1、字节流复制文件
public static void fun(File src,File desc ) throws Exception{
//建立字节流输入(读)对象,并绑定数据源
FileInputStream fis = new FileInputStream(src);
//建立字节流输出(写)对象,并绑定目的地
FileOutputStream fos=new FileOutputStream(desc);
int len=0;
byte[] b=new byte[1024];
//将读到的内容遍历出来,然后在通过字节写入
while((len=fis.read(b))!=-1){
fos.write(b,0,len);
}
//资源访问过后关闭,先创建的后关闭,后创建的先关闭
fos.close();
fis.close();
}

2、字符流复制文件

 //2、字符流复制文件
public static void fun1(File src,File desc) throws Exception{
//建立字符流输入(读)对象,并绑定数据源
FileReader fReader=new FileReader(src);
//建立字符流输出(写)对象,并绑定目的地
FileWriter fWriter=new FileWriter(desc);
int len=0;
char[] b=new char[1024];
//遍历出需复制的文件的字节,一个字符一个字符的写入复制过后的新文件中
while((len=fReader.read(b))!=-1){
fWriter.write(b,0,len);
}
//资源访问过后关闭,先创建的后关闭,后创建的先关闭
fWriter.close();
fReader.close();
}

3、字节缓冲区复制文件

 //3、字节缓冲区复制文件
public static void fun2(File src,File desc) throws Exception{
//建立字节缓冲流输入(读)对象,并绑定数据源
BufferedInputStream bu=new BufferedInputStream(new FileInputStream(src));
//建立字节缓冲流输出(写)对象,并绑定目的地
BufferedOutputStream ou=new BufferedOutputStream(new FileOutputStream(desc));
int len=0;
byte[] by=new byte[1024];
//将读到的内容遍历出来,然后在通过字节写入
while((len=bu.read(by))!=-1){
ou.write(by,0,len);
}
//资源访问过后关闭,先创建的后关闭,后创建的先关闭
ou.close();
bu.close();
}

4、字符缓冲区复制文件

 //4、字符缓冲区复制文件
public static void fun3(File src,File desc) throws Exception{
//建立字符缓冲流输入(读)对象,并绑定数据源
BufferedReader br=new BufferedReader(new FileReader(src));
//建立字符缓冲流输出(写)对象,并绑定目的地
BufferedWriter bw=new BufferedWriter(new FileWriter(desc));
String len="";
char[] c=new char[1024];
//将读到的内容遍历出来,然后在通过字符写入
while((len=br.readLine())!=null){
bw.write(c,0,len.length());
}
//资源访问过后关闭,先创建的后关闭,后创建的先关闭
bw.close();
br.close();
}

调用方法:

方法名(参数1,参数2);

其中我的参数1写的是读的对象也就是数据源,参数2代表的是要写入的目的地

 fun(new File("c:\\bu.txt"),new File("d:\\kk.txt"));
05-08 08:04