输入、输出文件函数

来源:互联网 发布:阿里云短信平台充值 编辑:程序博客网 时间:2024/05/22 16:47

1.BufferedReader 和InputStreamReader

    转换流用于实现将字节流转换成字符流,其中InputStreamReader将字节输入字符流转换成字符输入流。OutputStreamWriter将字节输出流转成字符输出流。


   由于BufferedReader具有一个readerLine方法,可以非常方便地一次读入一行内容,所以经常把读

取的文本内容输入流包装成BufferedReader,用以方便地读取输入流的文本内容。

InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。

每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。

为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:

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



注:如果我们需要输出文本内容,都应该将输出流包装成PrintStream后进行输出。

 

2.RandomAccessFile的只读输入

      RandomAccessFile是java输入/输出流体系中工能最丰富的文件内容访问类,它提供了众多的方

法来访问文件内容,它既可以读取文件内容,也可以向文件输出数据。与普通的输入、输出流不同的

是,它支持“随机访问”的方式,程序可以直接跳转到文件的任意地方来读写数据。它的两个方法为
long getFilePointer(): 返回文件记录的当前位置
void seek(long pos):将文件记录指针定位到pos位置

 

3.RandomAccessFile的追加内容

 
     为了追加内容,程序应该先将记录指针移到文件最后,然后再开始向文件中输出内容。
注意:它只能在文件的最后追加内容,而不能在中间加入内容,因为会覆盖后面的内容。如果想实现

任意点加入功能可以用下面方法:首先创建一个临时文件,用以保存被插入文件的插入点后面的内容

。程序先将文件中插入点后的内容读入临时文件中,接下来程序重新定位到插入点,将需要插入的内

容添加到文件后面,最后将临时文件的内容添加到文件后面,通过这个过程就可以指向文件、指定位

置插入内容。

原创粉丝点击