原文地址:https://blog.csdn.net/yinqianhui1990/article/details/7883792
以前学IO流的时候由于没有区分字节流和字符流,导致在使用流的时候经常搞混,甚至弄得既有IO流,又有字符流,一直比较模糊,通过这次彻底的再学习,又一次理解到了他们的区别。
字节流是以字节为单位进行读写,二字符流是以字符流为单位进行读写。字节流适用于全英文的页面或
文件读写,而字符流适用于含有中文字符的文件进行读写,原因是字节流读写中文时会出现乱码的状况。
字节流是指8位的通用字节流,以字节为基本单位,在java.io包中,对于字节流进行操作的类大部分
继承于InputStream(输入字节流)类和OutputStream(输出字节流)类;
这是一个复制文件的实例,文件的写入与写出操作!
package com.qq.Iostudy;
import java.io.*;
public class Copybuffer {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File in=new File("c:/aaa.txt");
File out=new File("d:/bbb.txt");
try {
Writer w=new FileWriter(in);
BufferedWriter bw=new BufferedWriter(w);
bw.write("你好你好");
bw.write("尹千慧");//向in里面写入
Reader r=new FileReader(in);
BufferedReader br=new BufferedReader(r);
String str=br.readLine();//读取in里面内容
Writer fw=new FileWriter(out);
BufferedWriter bwo=new BufferedWriter(fw);
while(str!=null)
{
System.out.print(str);
bwo.write(str);//再向out里面写入
str=br.readLine();
}
bw.flush();
bw.close();
br.close();
r.close();
bwo.flush();
bwo.close();
fw.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}