现在的位置: 首页 > 综合 > 正文

字符流

2014年11月04日 ⁄ 综合 ⁄ 共 1594字 ⁄ 字号 评论关闭
文章目录

Reader

|--InputStreamReader

|--FileReader:专门用于处理文件的字符读取流对象。

Writer

|--OutputStreamWriter

|--FileWriter:专门用于处理文件的字符写入流对象。

Reader中的常见的方法:

1int read():读取一个字符。返回的是读到的那个字符。如果读到流的末尾,返回-1.

2int read(char[]):将读到的字符存入指定的数组中,返回的是读到的字符个数,

也就是往数组里装的元素的个数。如果读到流的末尾,返回-1.

3close():读取字符其实用的是window系统的功能,就希望使用完毕后,进行资源的释放。

Writer中的常见的方法:

1write(ch): 将一个字符写入到流中。

2write(char[]): 将一个字符数组写入到流中。

3write(String): 将一个字符串写入到流中。

4flush():刷新流,将流中的数据刷新到目的地中,流还存在。

5close():关闭资源:先关闭前会先调用flush,刷新流中的数据去目的地。然流关闭。

FileWriter:

该类没有特有的方法。只有自己的构造函数。

该类特点在于,

1,用于处理文本文件。

2,该类中有默认的编码表,

3,该类中有临时缓冲。

构造函数:在写入流对象初始化时,必须要有一个存储数据的目的地。

FileWriter(String filename):

该构造函数做了什么事情呢?

1,调用系统资源。

2,在指定位置,创建一个文件。

注意:如果该文件已存在,将会被覆盖。

FileWriter(String filename,boolean append):

该构造函数:当传入的boolean类型值为true时,会在指定文件末尾处进行数据的续写。

FileReader

1,用于读取文本文件的流对象。

2,用于关联文件文件。

构造函数:在读取流对象初始化的时候,必须要指定一个被读取的文件。

如果该文件不存在会发生FileNotFoundException.

FileReader(String filename);

字符流的缓冲区:

缓冲区的出现提高了对流的操作效率。

原理:其实就是将数组进行封装。

BufferedWriter、 BufferedReader

对应的类:

l BufferedWriter

特有方法:

newLine():跨平台的换行符。

l BufferedReader

特有方法:

readLine():一次读一行,到行标记时,将行标记之前的字符数据作为字符串返回。 当读到末尾时,返回null

在使用缓冲区对象时,要明确,缓冲的存在是为了增强流的功能而存在,所以在建立缓冲区对象时,要先有流对象存在。

其实缓冲内部就是在使用流对象的方法,只不过加入了数组对数据进行了临时存储。为了提高操作数据的效率。

代码上的体现:

写入缓冲区对象。

//建立缓冲区对象必须把流对象作为参数传递给缓冲区的构造函数。

BufferedWriter bufw = new BufferedWriter(new FileWriter("buf.txt"));

bufw.write("abce");//将数据写入到了缓冲区。

bufw.flush();//对缓冲区的数据进行刷新。将数据刷到目的地中。

bufw.close();//关闭缓冲区,其实关闭的是被包装在内部的流对象。

读取缓冲区对象。

BufferedReader bufr = new BufferedReader(new FileReader("buf.txt"));

String line = null;

//按照行的形式取出数据。取出的每一个行数据不包含回车符。

while((line=bufr.readLine())!=null) {

System.out.println(line);

}

bufr.close();

抱歉!评论已关闭.