欢迎来到天天文库
浏览记录
ID:59211060
大小:318.50 KB
页数:30页
时间:2020-09-26
《第8章Java 输入输出系统ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章Java输入输出系统8.1字节流8.2过滤流8.3字符流8.6对象序列化8.7File类8.8综合实例8.4标准I/O8.5随机访问文件类8.1字节流在java.io包中,java.io.InputStream表示字节输入流,它是抽象类,不能实例化。InputStream类的作用是用来表示那些从不同数据源产生输入的类。这些数据源有:字节数组、String对象、文件、管道及其他数据源。每一种数据源都有相应的InputStream子类。输入流的类层次结构如图8.1所示。图8.1输入流的类层次结构8.1字节流InputStream中的读取数据的方法如下:abstr
2、actintread()throwsIOException功能:读取一个字节数据,并返回读到的数据,如果返回-1,表示读到了输入流的末尾。intread(byte[]b)throwsIOException功能:从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中,并以整数形式返回实际读取的字节数,如果返回-1,表示读到了输入流的末尾。intread(byte[] b,intoff,intlen)throwsIOException:功能:将数据读入一个字节数组,同时返回实际读取字节数,如果返回-1,表示读到了输入流的末尾。off指定在数组b中存放数据的起始偏移位
3、置,len指定读取的最大字节数。如果返回-1,表示读到了输入流的末尾。longskip(longn)throwsIOException:功能:跳过和放弃此输入流中的n个字节,返回跳过的实际字节数。如果n为负,则不跳过任何字节。默认实现是此类的skip方法创建一个byte数组,然后重复将字节读入其中,直到读够n个字节或已到达流末尾为止。8.1字节流intavailable()throwsIOException:功能:返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。voidclose():功能:关闭输入流,释放和这个流相关的系统资源。ja
4、va.io.OutputStream表示字节输出流,它也是抽象类,不能被实例化。字节输出流的种类和字节输入流是大致对应的。输出流的类层次结构如图8.2所示。图8.2输出流的类层次结构8.1字节流OutputStream中的写入数据的方法如下:abstractvoidwrite(intb)throwsIOException:将b的最低的一个字节写入此输出流,b的高位字节(3个)丢弃。voidwrite(byte[]b)throwsIOException:将b.length个字节从指定的byte数组写入此输出流。voidwrite(byte[]b,intoff,int
5、len)throwsIOException:将指定byte数组中从偏移量off开始的len个字节写入此输出流。voidflush()throwsIOException:刷新此输出流并强制写出所有缓冲的输出字节。voidclose()throwsIOException:关闭此输出流并释放与此流有关的所有系统资源。8.1.1字节数组输入流ByteArrayInputStream类从内存中的字节数组中读取数据,因此它的数据源是一个字节数组。ByteArrayInputStream类本身采用了适配器设计模式,它把字节数组转换为输入流类型,使得程序能够对字节数组进行读操作。
6、【例8.1】使用字节数组输入流读取数组中的字节。8.1.2字节数组输出流ByteArrayOutputStream类的构造方法如下:ByteArrayOutputStream():创建一个新的字节数组输出流。缓冲区的容量最初是32字节,如有必要可增加其大小。ByteArrayOutputStream(intsize):创建一个新的byte数组输出流,它具有指定大小的缓冲区容量(以字节为单位)。8.1.2字节数组输出流【例8.2】把字符串转换为字节数组再写入到字节数据输出流中。ByteArrayOutputStreamDemo.javapackageorg.iost
7、ream;importjava.io.*;classByteArrayOutputStreamDemo{publicstaticvoidmain(Stringargs[])throwsIOException{ByteArrayOutputStreambaos=newByteArrayOutputStream();Strings="welcometouseByteArrayOutputStream.";bytebuf[]=s.getBytes();baos.write(buf);//将指定byte数组中的字节写入此byte数组输出流System.out.printl
8、n(bao
此文档下载收益归作者所有