【java基础】14.I/O:流3

字符流
 
专门处理字符流的抽象类Reader和Writer
字符流的读写等方法与字节流的相应方法都很类似,但读写对象使用的是字符16位的Unicode字符( 俩个字节表示一个字符)
 
Reader
Reader中包含一套字符输入流需要的方法,可以完成最基本的从输入流读入数据的功能。当Java程序需要外设的数据时,可根据数据的不同形式,创建一个适当的Reader子类类型的对象来完成与该外设的连接,然后再调用执行这个流类对象的特定输入方法,如read(),来实现对相应外设的输入操作
 
Writer
Writer中包含一套字符输出流需要的方法,可以完成最基本的输出数据到输出流的功能。当Java程序需要将数据输出到外设时,可根据数据的不同形式,也要创建一个适当的Writer子类类型的对象来完成与该外设的连接,然后再调用执行这个流类对象的特定输出方法,如write(),来实现对相应外设的输出操作
 
InputStreamReader和OutputStreamWriter
用来在字节流和字符流之间搭一座“桥
–public InputSteamReader(InputSteam in)
–public InputSteamReader(InputSteam in,String enc)
–public OutputStreamWriter(OutputStream out)
–public OutputStreamWriter(OutputStream out,String enc
•其中in和out分别为输入和输出字节流对象,enc为指定的编码规范(若无此参数,表示使用当前平台的缺省规范,可用getEncoding()方法得到当前字符流所用的编码方式)。
•读写字符的方法read()、write(),关闭流的方法close()等与Reader和Writer类的同名方法用法都是类似的。
 
 
FileReader和FileWriter
FileReader类创建了一个可以读取文件内容的Reader类。FileReader继承于InputStreamReader。它最常用的构造方法显示如下
–FileReader(String filePath)
–FileReader(File fileObj)
FileWriter 创建一个可以写文件的Writer 类。 FileWriter继承于OutputStreamWriter.它最常用的构造方法如下:
–FileWriter(String filePath)
–FileWriter(String filePath, boolean append)
–FileWriter(File fileObj)
–append :如果为 true,则将字节写入文件末尾处,而不是写入文件开始处
 
CharArrayReader
CharArrayReader 是一个把字符数组作为源的输入流的实现。该类有两个构造方法,每一个都需要一个字符数组提供数据源
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
•将字符从此字符串复制到目标字符数组。
CharArrayWriter 实现了以数组作为目标的输出流
BufferedReader BufferedWriter
•和字节流的情况相同,缓冲一个输入字符流同样提供支持可用缓冲区中流内反向移动的基础。为支持这点,BufferedReader 实现了mark( )和reset( )方法
•BufferedWriter是一个增加了flush( )方法的Writer。flush( )方法可以用来确保数据缓冲区确实被写到实际的输出流。用BufferedWriter 可以通过减小数据被实际的写到输出流的次数而提高程序的性能。
•BufferedWriter有两个构造方法:
–BufferedWriter(Writer outputStream)
–BufferedWriter(Writer outputStream, int bufSize)
–第一种形式创建了使用默认大小缓冲区的缓冲流。第二种形式中,缓冲区大小是由bufSize参数传入的
 
RandomAccessFile(随机访问文件类)
•RandomAccessFile包装了一个随机访问的文件。 它不是派生于InputStream和OutputStream,而是实现定义了基本输入/输出方法的DataInput和DataOutput接口。它支持定位请求——也就是说,可以在文件内部放置文件指针。它有两个构造方法:
•RandomAccessFile(File fileObj, String access) throws FileNotFoundException
•RandomAccessFile(String filename, String access) throws FileNotFoundException
•第一种形式,fileObj指定了作为File 对象打开的文件的名称。
•第二种形式,文件名是由filename参数传入的。
•两种情况下,access 都决定允许访问何种文件类型。如果是“r”,那么文件可读不可写,如果是“rw”,文件以读写模式打开
•RandomAccessFile类同时实现了DataInput和DataOutput接口,提供了对文件 随机存取的功能,利用这个类可以在文件的任何位置读取或写入数据。
•RandomAccessFile类提供了一个 文件指针,用来标志要进行读写操作的下一数据的位置。
 
–public long getFilePointer()
–返回到此文件开头的偏移量(以字节为单位),在该位置发生下一个读取或写入操作
–public void seek(long pos)
–设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。偏移量的设置可能会超出文件末尾。偏移量的设置超出文件末尾不会改变文件的长度。只有在偏移量的设置超出文件末尾的情况下对文件进行写入才会更改其长度
 
 
 
 
    注:此文档为学习圣思园风中叶教程结合自身学习所记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值