预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

IO流 1,流的分类 按照流的流向划分: 输入流:只能从中读取数据,而不能向其写数据。输入流基类,InputStream和Reader。 输出流:只能向其写入数据,而不能从中读取数据。输出流基类,OutputStream和Writer。 按照操作数据单元划分: 字节流:操作最小数据单元是8位的字节。字节流基类,InputStream和OutputStream。 字符流:操作最小数据单元是16位字节。字符流基类,Reader和Writer。 2,JavaIO体系 2.1IO体系图 2.2IO体系分类图 3,IO流抽象基类 3.1,输入流的抽象基类:InputStream和Reader InputStream和Reader是所有输入流的基类,它们都是抽象类,本身不能创建实例来执行输入,但它们是所有输入流的模板,所有输入流都使用它们提供的方法。 在InputStream里包含如下三个方法: 》》intread():从输入流中读取单个字节,返回所读取的字节数据(字节数据可直接转换为int类型)。 》》intread(byte[]b):从输入流中读取最多b.length个字节的数据,并将其存储在字节数组b中,赶回实际读取的字节数。 》》intread(byte[]b,intoff,intlen):从输入流中读取最多len字节的数据,并将其从off位置开始存储在数组b中,返回实际读取的字节数。 在Reader里包含如下三个方法: 》》intread():从输入流中读取单个字符,返回所读取的字符数据(字符数据可直接转换为int类型)。 》》intread(char[]cbuf):从输入流中读取最多cbuf.length个字符的数据,并将其存储在字符数组cbuf中,赶回实际读取的字符数。 》》intread(char[]cbuf,intoff,intlen):从输入流中读取最多len字符的数据,并将其从off位置开始存储在数组cbuf中,返回实际读取的字符数。 3.2,输出流的抽象基类:OutputStream和Writer OutputStream和Writer和前面的输入流相似,两个流都提供了如下三个方法: 》》voidwrite(intc):将指定的字节/字符输出到输出流中,其中c代表字节或者字符。 》》voidwrite(byte[]/char[]buf):将字节数组/字符数组中的数据输出到指定的输出流中。 》》voidwrite(byte[]/char[]buf,intoff,intlen):将字节数组/字符数组中从off位置开始,长度为len的字节/字符输出到指定的输出流中。 因为字符流直接以字符作为操作单位,所以Writer可以用字符串来代替字符数组,即以String对象作为参数。Writer里还包含如下两个方法: 》》voidwrite(Stringstr):将字符串str里包含的字符输出到指定的输出流中。 》》voidwrite(Stringstr,intoff,intlen):将字符串str从off位置开始,长度为len的字符输出到指定输出流中。 4,IO流程序异常处理的标准方式 importjava.io.*; classFileWriterDemo2 { publicstaticvoidmain(String[]args) { FileWriterfw=null; try { fw=newFileWriter("c:\\demo.txt"); fw.write("abcde"); } catch(IOExceptione) { //异常处理方式 System.out.println(e.toString()); } finally { try { if(fw!=null) fw.close(); } catch(IOExceptione) { //异常处理方式 System.out.println(e.toString()); } } } } 5,流与流之间相对应的关系 图5.1字节输入流与输出流的对应关系 图5.2,字符输入流与输出流的对应关系 6,实现IO的子类 6.1,字符流 1,FileWriter 构造方法: FileWriter(StringfileName):根据给定的文件名构造一个FileWriter对象。 FileWriter(StringfileName,booleanappend):根据给定的文件名以及指示是否附加写入数据的boolean值来构造FileWriter对象。 常用方法: voidclose():关闭此流,但要先刷新它。 voi