NIO缓冲流(过滤流)原理关系图

03-01 1137阅读

N.1 节点流(字符流与过滤流)和过滤流

1)直接和数据源(文件,内存块,网络)相连接的流是节点流,否则就是过滤流。过滤流相当于在节点流上加了一个流。

————————————————————————

NIO缓冲流(过滤流)原理关系图

————————————————————————

NIO缓冲流(过滤流)原理关系图

————————————————————————

N.2.1 节点流

1)FileReader:以字符读文件。

2)FileWriter:以字符写文件。

3)FileInputStream:以字节读文件。

4)FileOutputStream:以字节写文件。

5)CharArrayReader:以字符读取字符数组

6)CharArrayWriter:以字符写入字符数组

7)StringReader:以字符读取字符串

8)StringWriter:以字符写入字符串

9)ByteArrayInputStream:以字节读取字节数组

10)ByteArrayOutputStream:以字节写入字节数组

11)ObjectInputStream:以字节读取对象

12)ObjectOutputStream:以字节写入对象。

N.2.2 NIO过滤流

1)BufferedReader:以字符读缓冲区。

2)BufferedWriter:以字符写缓冲区。

3)BufferedInputStream:以字节读缓冲区。

4)BufferedOutputStream:以字节写缓冲区。

5)InputStreamReader:字节输入流转换为字符输入流。

构造方法:InputStreamReader(InputStream in, Charset cs)

6)OutputStreamWriter:字符输出流转换为字节输出流。

OutputStreamWriter是过滤流,作用就是,缓冲区和调节编码格式等的好处。

7)构造方法:public OutputStreamWriter(OutputStream out,Charset cs)

8)字符缓冲流

import java.io.*;

public class test {

public static void main(String[] args) throws IOException {

//装饰者模式

FileReader fr = new FileReader ("E:/test/abc/Day2001. java");

//将fr包装成为一个缓冲过滤流

BufferedReader br = new BufferedReader (fr);

FileWriter fw = new FileWriter("E:/test/abc/Day2001副本. java");

BufferedWriter bw = new BufferedWriter (fw);

int b = 0; //保存读到的字符

// read方法每次读取一个字符,如果读到了文件的未尾则返回-1

while (-1 != (b = br. read())) {//将字符写入输出流

bw.write(b);

}

//close方法内部会调用flush方法

//close方法内部会调用节点流的close方法

br.close();

bw.close();

}

}

9)字节缓冲流 转 字符缓冲流

import java.io.BufferedReader;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.nio.charset.Charset;

public class test {

public static void main(String[] args) throws IOException {

//装饰者模式

FileInputStream fis = new FileInputStream("E:/test/abc/Day2001. java");//把一个字节输入流,转换为字符输入流,使用GBK字符集

//构造器: InputStreamReader (InputStream in, Charset cs)

// Charset forName (String charsetName)方法

InputStreamReader isr = new InputStreamReader(fis, Charset. forName ("GBK"));

// 将fr包装成为一个缓冲过滤流

BufferedReader br = new BufferedReader (isr);

int b = 0;// 保存读到的字符

// read方法每次读取一个字符,如果读到了文件的末尾则返回-1

while (-1 != (b = br. read())) {

//将字符写入输出流

System.out. print((char) b);

}

// close方法内部会调用flush方法

// close方法内部会调用节点流的close方法

br.close();

}

}

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]