字节流与字符流的区别

package com.etc.io;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
/*
*
* 字节流与字符流
* */
import org.junit.Test;
public class IoTest
{
@Test
public void iotest() throws IOException
{
String str="中国人";
/*
* //方式一:使用字节流输入,字节流输出,使用了字节缓冲区
FileOutputStream fos=new FileOutputStream("E:\\1.txt");
fos.write(str.getBytes("utf-8"));//输入
fos.close();

FileInputStream fr=new FileInputStream("E:\\1.txt");
byte[] buf=new byte[1024];
int len;
String myStr="";
while((len=fr.read(buf))!=-1)//输出
{
myStr+=new String(buf,0,len,"utf-8");
}
System.out.println(myStr);*/

/*
//方式二:使用字符流输入,字符流输出,使用了字符缓冲区
FileWriter fw=new FileWriter("E:\\2.txt");
fw.write(str);//输入
fw.close();

FileReader fr2=new FileReader("E:\\2.txt");
char[] buf2=new char[1024];
int len2=fr2.read(buf2);//输出
String myStr2=new String(buf2,0,len2);
System.out.println(myStr2);*/

//方式三:使用字符流输入,字符流输出,没有使用字符缓冲区,直接读行
PrintWriter pw=new PrintWriter("E:\\3.txt");
pw.write(str);
pw.close();

BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("E:\\3.txt"),"gbk"));
String myStr3=br.readLine();
br.close();
System.out.println(myStr3);

}

}

posted @ 2016-12-26 13:58  ATJAVA  阅读(176)  评论(0编辑  收藏  举报