目录
1转换流
将字节流和字符流进行相互转换
1.1InputStreamReader
将字节输入流转化为字符输入流
1.1.1声明形式
public class InputStreamReader extends Reader
1.1.2构造函数
public InputStreamReader(InputStream in) {//传入一个InputStream的实现类的实例
super(in);
try {
//设定编码的过程
sd = StreamDecoder.forInputStreamReader(in, this, (String)null);
} catch (UnsupportedEncodingException e) {
throw new Error(e);
}
}
FileReader的声明形式:
public class FileReader extends InputStreamReader {
public FileReader(String fileName) throws FileNotFoundException {
super(new FileInputStream(fileName));
}
FileReader的实现是继承InputStreamReader转换流,转换流的构造方法使用到FileInputStream字节输入流。
因此,FileReader的实现是将读取到的字节流通过转换流(本质是通过编码器将字节按照对应的编码表:ASCII,GBK,UTF-8)将其解析为我们能够识别的文本内容。
1.1.3代码演示
InputStreamReader reader = new InputStreamReader(new FileInputStream("C:\\Users\\ccc\\Desktop\\IO流\\bb.txt"));
FileInputStream inputStream = new FileInputStream("C:\\Users\\ccc\\Desktop\\IO流\\bb.txt");
InputStreamReader reader1 = new InputStreamReader(inputStream);
1.1.4总结
InPutStreamReader转换流继承自 Reader基类 ,而这个转化流在构造时需要先有一个FileInPutStream的实例,这样要就把FileInPutStream转换成了FileReader。
1.2OutputStreamWriter
将字节输出流转化为字符输出流
1.2.1声明形式
public class OutputStreamWriter extends Writer
1.2.2构造函数
public OutputStreamWriter(OutputStream out, String charsetName)
throws UnsupportedEncodingException
{
super(out);
if (charsetName == null)
throw new NullPointerException("charsetName");
se = StreamEncoder.forOutputStreamWriter(out, this, charsetName);
}
1.2.3代码演示
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream("C:\\Users\\ccc\\Desktop\\IO流\\bb.txt"));
FileOutputStream outputStream = new FileOutputStream("C:\\Users\\ccc\\Desktop\\IO流\\bb.txt");
OutputStreamWriter writer1 = new OutputStreamWriter(outputStream);
1.2.4总结
OutputStreamWriter转换流继承自 Writer基类 ,而这个转化流在构造时需要先有一个FileOutputStream的实例,这样要就把FileOutputStream转换成了FileWriter。
2缓冲流
提高IO的读取速度
2.1缓冲流的分类
字节缓冲流:BufferedInputStream、BufferedOutputStream
注意:创建字节输入缓冲流和字节输出缓冲流传参不能直接传入字符串,需要借助FileInputStream流来进行传入参数。
字符缓冲流:BufferedReader、BufferedWriter
2.2特有方法
BufferedWriter的特有方法:
void newLine() throws IOException;//根据当前系统,写入一个换行符
BufferedReader的特有方法:
String readLine() throws IOException; //读取文本中一行内容