JAVA IO流总结(一)——字符流

一、Reader

Reader的抽象父类在java.io.Reader中

public abstract class Reader
extends Object
implements Readable, Closeable

Readable接口实现read方法,read方法一次读取一个字符

Closeable接口实现close方法

1.1 BufferedReader

提供了通用的缓冲方式文本读取,另外还提供readline方法,最基本构造函数为:

BufferedReader(Reader in)      

例如:

BufferedReader in = new BufferedReader(new FileReader("foo.in"));

因为其拥有readline方法,可以套在其他字符输入流外面,方便使用

1.2 InputStreamReader

为字节流转换为字符流提供桥梁。把一个字节流以字符流的方式读入时用到这个,最基本构造方法:

InputStreamReader(InputStream in)      

例如

 BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

1.2.1 FileReader

作为InputStreamReader的子类,基本构造函数:

File(String pathname)

例子可参考1.1 BufferedReader

1.3 StringReader

构造函数参数是String:

StringReader(String s)

其拥有int read(char[] cbuf, int off, int len) ,其中cbuf表示目标缓冲区,off表示从源String的第off个字符开始读取,len表示读取的字符长度

1.4 PipedReader

创建管道字符流读取,构造函数为:

PipedReader()

构造之后不能直接使用,需要把PipedReader和PipedWriter绑定起来,在Writer写数据,在Read才能读数据:

connect(PipedWriter src)

1.5 CharArrayReader

与StringReader类似,不过构造函数的参数是char数组,其他都类似:

CharArrayReader(char[] buf)

二、Writer

Writer的write方法可以有以下形式:

write(char[] cbuf)
write(char[] cbuf, int off, int len)
write(int c)
write(String str)
write(String str, int off, int len)

还有append方法,与使用write方法效果相同

flush()方法可以缓冲区中的内容强制写出去

 2.1 BufferedWriter

通过缓冲进行字符流写入,基本构造函数为:

BufferedWriter(Writer out)

例如:

PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));

该类有newline函数,可以插入一个换行符,因为不是所有操作系统换行符都是\n

2.2 OutputStreamWriter

把字符流变成字节流输出,与InputStreamReader作用相反,基本构造函数:

OutputStreamWriter(OutputStream out)

例如:

Writer out = new BufferedWriter(new OutputStreamWriter(System.out));

2.2.1 FileWriter

继承OutputStreamWriter,与FileReader类似,用于文件的写入,基本构造函数为:

FileWriter(File file)

2.3 StringWriter

把内容写入String缓冲中,基本构造函数为:

StringWriter()

可以使用write方法后,通过system.out.print方法和writer.toString把writer中的内容输出

2.4 PipedWriter

和PipedReader成对使用,基本构造函数为:

PipedWriter()

writer或reader其中一方使用connect进行绑定即可

 2.5 CharArrayWriter

与StringWriter类似,基本构造方法:

CharArrayWriter()

可以使用toCharArray() 返回char[],也可以用toString()返回一个String

发布了39 篇原创文章 · 获赞 5 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/sadoshi/article/details/72854644