Java输入输出系统.ppt
《Java输入输出系统.ppt》由会员分享,可在线阅读,更多相关《Java输入输出系统.ppt(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、7 Java输入输出系统内容n什么是流n流的分类n字节流,字符流,处理流n文件IO操作n文件类Filen标准输入输出n对象的序列化什么是流?StreamStreamStreamStreamA stream is a path ofinformation from a source to a destination.doc.txt什么是流?n程序设计语言借用水流、电流等概念,将流动的数据称为“流”。n流可以有各种来源和目的地,如标准输入输出、文件、网络等,也可以有各种不同的用途和处理方法,因而有许多分类。nJava关于流的设计思想是:提供各种不同的流类,由程序员进行组合使用,以提供最大的灵活性。
2、流的功能概述Java提供了不同的流类以实现如下的功能n标准输入输出n文件输入输出n文本文件/二进制文件n顺序读写/随机读写njava.nio包进一步提供了异步数据读写、内存映射文件、文件锁等功能n网络数据读写n将对象存储为流/从流中读取对象,称为对象的序列化或串行化(Serialization)流的分类java.io包提供了多个流类来实现输入输出功能:n按照数据流的方向不同分为输入流和输出流n按照处理数据单位的不同分为字节流和字符流n按照功能不同可以分为节点流和处理流(或者称过滤流,Filter)流的分类InputStreamOutputStreamReaderWriterByte Strea
3、msCharacter Streams读写以字节为单位进行 读写以字符为单位进行 流的分类n节点流(node stream)对指定的地方(磁盘文件、内存 等)读/写n处理流(filter stream)一个处理流使用节点流作为输入或输出。目的地数据源InputStream的分类nInputStream是字节输入流。它的几种输入源可以是:1.一个字节数组2.一个文件3.一个管道InputStream的分类n常用的InputStream流有下列几个:n ByteArrayInputStream n FileInputStreamn PipedInputStream/把字节数组转换为输入流/从文件中
4、读取数据/连接一个PipedOutputStreamInputStream的方法nInputStream的常用方法:public abstract int read()throws IOException public int read(byte data)throws IOException public int read(byte data,int offset,int length)throws IOException public long skip(long n)throws IOException public int available()throws IOException p
5、ublic void close()throws IOException public void mark(int readlimit)public void reset()throws IOException public boolean markSupported()OutputStream的分类nOutputStream是字节输出流。它的几种输出目的地可以是:1.一个字节数组2.一个文件3.一个管道OutputStream的分类n常用的OutputStream流有下列几个:nByteArrayOutputStreamnFileOutputStreamnPipedOutputStreamO
6、utputStream的方法nOutputStream的常用方法:public abstract void write(int b)throws IOException public void write(byte data)throws IOException public void write(byte data,int offset,int length)throws IOException public void flush()throws IOExceptionpublic void close()throws IOException 字节流示例nTestFileInputStrea
7、m.javanTestFileOutputStream.javaReader&Writer的分类nReader&Writer的分类类似于InputStream和OutputStream的分类。n所以下面我们通过一个表格来做对比,从而对Reader&Writer的分类加以介绍。Reader&Writer的分类InputStream ReaderConverter:InputStreamReaderOutputStreamWriterConverter:OutputStreamWriterFileInputStreamFileReaderFileOutputStreamFileWriterStri
8、ngBufferInputStreamStringReader(无对应)StringWriterReader&Writer的分类ByteArrayInputStream CharArrayReader ByteArrayOutputStreamCharArrayWriterPipedInputStreamPipedReader其中,InputStreamReader将一个字节流转换为字符流来读入;OutputStreamWriter将一个字符流转换为字节流写出字符流示例nTestFileReader.javanTestFileWriter.java什么是处理流?nFilter(处理流/过滤流)
9、是建立在其他流的基础上的。例如:InputSteam/System.inInputStreamReaderBufferedReader处理流的分类n各种处理流实现不同的过滤,有的可以暂存数据,有的可以统计经过的数据,有的可以转换数据类型。nFilter的分类n面向字节的Filtern面向字符的Filter处理流(面向字节)nFilterInputStream和FilterOutputStream.nFilterInputStream和FilterOutputStream都是抽象类,分别继承自InputStream 和 OutputStreamn根据实现过滤功能的不同,面向字节的Filter也分
10、成 不同的类别,下表给出它们的分类。处理流(面向字节)详细分类FilterOutputStream FilterInputStreamPrintStream/用于产生格式化输出BufferedOutputStream/利用缓冲区来提高写效率BufferedInputStream/利用缓冲区来提高读效率DataOutputStream/与DataInputStream搭配使用,可以按照与平台无关的方式向流中写基本类型(int、char和long等)的数据DataInputStream/与DataOutputStream搭配使用,可以按照与平台无关的方式从流中读取基本类型(int、char和lon
11、g等)的数据处理流(面向字符)nFilterReader和FilterWriter.n根据实现过滤功能的不同,面向字符的Filter也分成不同的类别。下表给出它们的分类。处理流(面向字符)详细分类FilterReader FilterWriterPushBackReader PrintWriterBufferedReaderBufferedWriterLineNumberReader处理流示例nTestBufferedStream1.javanTestBufferedStream2.java文件I/O文件I/O 相关类nFileInputStreamnFileOutputStreamnFile
12、ReadernFileWriternDataInputStream/DataOutputStreamnRandomAccessFile二进制数据访问nJava利用DataInputStream/DataOutputStream来访问二进制数据,例如访问二进制数据文件。nDataInputStream/DataOutputStream提供读取和写入基本数据类型以及字符串类型数据的能力nDataInputStream/DataOutputStream的方法(参见API文档)n示例:TestDataStream.java文件的随机访问nJava利用RandomAccessFile类来实现随机访问n随
13、机访问文件方式可以在指定位置读/写字节内容nRandomAccessFile同时具有DataInputStream和DataOutputStream的功能n提供方法void seek(long pos)指定位置,以便读写数据n示例:TestRandomAccessFile.java更多例子例1:文件I/O 举例n下面这个程序FileIO.java演示文件读写操作。n在这个例子中,假设在程序当前执行目录下已经存在一个文件in.txt(它的格式如图1),FileIO.java程序读取in.txt这个文件,然后生成一个新的文件out.txt(生成的新文件out.txt的格式如图2)。例1:文件I/O
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 输入输出 系统
限制150内