转换流:
输入字节流的转换流:
package bianmajiema;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Demo2 {
public static void main(String[] args) throws IOException {
//readTest();
readTest2();
//writeTest();
//writeTest2();
}
public static void readTest() throws IOException{
InputStream in=System.in;//获取标准输入流
System.out.println("读到的字符:"+(char)in.read());//read 只能读一个字节
//需要把字节流转化成字符流
InputStreamReader inputStreamReader=new InputStreamReader(in);
BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
String line=null;
while((line=bufferedReader.readLine())!=null){
System.out.println(line);
}
bufferedReader.close();
}
public static void writeTest() throws IOException{
File file=new File("E:\\t\\b.txt");
FileOutputStream fileout=new FileOutputStream(file);
//需要把输出字节流流转化为字符流
OutputStreamWriter outputStreamWriter=new OutputStreamWriter(fileout);
outputStreamWriter.write("大家好");
//fileout.write("dajiahao".getBytes());
outputStreamWriter.close();
}
//使用输出字节流的转换流指定码表写出数据
public static void writeTest2() throws IOException{
File file =new File("E:\\t\\f.txt");
//建立输出通道
FileOutputStream fileoutputStream=new FileOutputStream(file);
//建立把输出字节流转化成字符流并且指定编码表
OutputStreamWriter outputStreamWriter=new OutputStreamWriter(fileoutputStream,"utf-8");
outputStreamWriter.write("新中国");
outputStreamWriter.close();
}
public static void readTest2() throws IOException{
File file=new File("E:\\t\\f.txt");
FileInputStream fileInputStream=new FileInputStream(file);
//穿件字节流的转换流并且指定码表进行读取
InputStreamReader inputStreamReader=new InputStreamReader(fileInputStream,"utf-8");
char[] c=new char[1024];
int length=0;
while((length=inputStreamReader.read(c))!=0){
System.out.println(new String(c,0,length));
}
}
}
InputStreamReader 是字节通向字符流的桥梁,是 FileReader 的父类 字节流 -- 》字符流
输出字节流的转换流:OutputStreamWriter字符通向字节的桥梁
转换流的作用:
1.如果目前所获取到的是一个字节流需要转换字节流使用,这个时候可以使用转换流
2.可以使用指定的编码表读写
应用场景:网络编程,接受别人的东西的时候