[计算机软件及应用]第7章 输入输出09级.ppt

[计算机软件及应用]第7章 输入输出09级

第7章 java输入输出流及文件操作 7.1 输入和输出简介 流的含义 流 是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。 数据流是指一组有顺序的、有起点的和终点的字节集合。 流的分类 根据流的方向可以将流分成输入流和输出流。 输入流指数据从键盘或者文件等输入设备流向计算机(Input stream); 输出流指数据处理结果从计算机流向屏幕或文件等输出设备(Output stream)。 按流中数据序列的单位分两类: 字节流是以字节为单位进行输入输出处理的流。 字符流是以字符(16位的Unicode字符)为单位进行输入输出处理的流。 读写数据的过程 读数据的过程 将数据源的内容转换为流结构,该步骤由JDK API完成,程序员只需要选择合适的流类型即可。 从流中读取数据,该步骤由程序员完成,流中数据的顺序和数据源中数据的存储顺序保持一致。 写数据的过程 为连接指定的数据源而建立的专门的流结构,该步骤由JDK API完成,程序员只需要选择合适的流类型即可。 将数据以一定的格式写入到流中,该步骤由程序员完成,写入流中的数据的顺序就是数据在数据源中的存储顺序。 最后,当数据写入流中以后,可以通过一定的方式把流中的数据写入数据源,或者当流被关闭时,系统会自动将流中的数据写入数据源中。 输入输出基础类 7.2 字节流 InputStream和OutputStream类 这类流以字节(byte)为基本处理单位 可以完成最基本的从输入/输出流读/写数据的功能。 这两个类是抽象类。 它们是字节流所有类的超类。 从InputStream流读数据 abstract int read() throws IOException 读取一个字节的数据,并返回读到的数据。 如果返回-1,表示读到了输入流的末尾。 int read(byte[] b) throws IOException 将数据读入一个字节数组。同时返回实际读取的字节数。 int read(byte[] b,int off,int len) throws IOException 将读取的数据存储到b中,只是将流中的第一个数据存储到b中下标为off的位置,最多读取len个数据,而实际读取的字节数量则作为方法的返回值返回。 InputStream类其他方法 long skip ( long n ) 在输入流中跳过n个字节,并返回实际跳过的字节数; int available() 返回在不发生阻塞的情况下,可读取的字节数; void close():关闭输入流; void mark(int readlimit) 在输入流的当前位置放置一个标记,可实现重复读入; void reset():返回到上一个标记; boolean markSupported() 测试当前的流是否支持mark和reset方法。 字节输出流OutputStream void write(int b) throws IOException 往输出流中写入一个字节,写入的数据为参数b的最后一个字节。 void write(byte[] b) throws IOException 将数组b的所有字节写入输出流中。 void write(byte[] b, int off, int len) throws IOException 往输出流中写入数组b中的从偏移量off开始的len个字节的数据。 OutputStream其他方法 void close() 关闭输出流,释放和这个流相关的资源。 void flush() 刷新输出流,强制缓冲区中的输出字节被写出。 Reader和Writer是所有读取字符流类的父类抽象类。 字符流为从Reader和Writer派生出的一系列类。 这类流以16位的Unicode码表示的字符为基本处理单位。 Reader的类层次 Write的类层次 Reader类和Writer类 同类InputStream和OutputStream一样,Reader和Writer也是抽象类,只提供了一系列用于字符流处理的接口。 Reader和Writer的方法与类InputStream和OutputStream类似,只不过其中的参数换成字符或字符数组。 Reader类 Reader类的主要方法 boolean ready() 输入字符流是否可读 int read() 读取一个字符 int read(char[] cbuf) throws IOException 读取一串字符(到字符数组cbu

文档评论(0)

1亿VIP精品文档

相关文档