如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
JavaSE应用程序设计第十四章高级I/O编程张利国中科院新科海学校v512工作室www.jobedu.com.cn新科海学校JavaSE应用程序设计本章学习目标1JavaI/O原理2基本I/O流类型3I/O应用专题3.1标准I/O重定向3.2属性信息导入/导出3.3随机存取文件3.4临时文件4对象序列化5NI/Ohttp://www.jobedu.com.cn2新科海学校JavaSE应用程序设计JavaI/O原理基本概念:¾I/O(Input/Output)¾数据源(DataSource)¾数据宿(DataSink)Java中把不同的数据源与程序间的数据传输都抽象表述为“流”(Stream),java.io包中定义了多种I/O流类型实现数据I/O功能。I/O流分类:¾输入流(InputStream)和输出流(OutputStream)¾节点流(NodeStream)和处理流(ProcessingStream)¾字符流(CharacterStream)和字节流(ByteStream)http://www.jobedu.com.cn3新科海学校JavaSE应用程序设计输入流和输出流按照数据流动的方向,Java流可分为输入流(InputStream)和输出流(OutputStream)¾输入流只能从中读取数据,而不能向其写出数据;¾输出流则只能向其写出数据,而不能从中读取数据;¾特例:java.io.RandomAccessFile类。http://www.jobedu.com.cn4新科海学校JavaSE应用程序设计节点流和处理流根据数据流所关联的是数据源还是其他数据流,可分为节点流(NodeStream)和处理流(ProcessingStream)¾节点流直接连接到数据源¾处理流是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现增强的数据读/写功能,处理流并不直接连到数据源。文件read()readLine()wohhoware节点流youFileReader处理流BufferedReader图14-1节点流及处理流的连接http://www.jobedu.com.cn5新科海学校JavaSE应用程序设计字符流和字节流按传输数据的“颗粒大小”划分,可分为字符流(CharacterStream)和字节流(ByteStream)¾字节流以字节为单位进行数据传输,每次传送一个或多个字节;¾字符流以字符为单位进行数据传输,每次传送一个或多个字符。Java命名惯例:凡是以InputStream或OutputStream结尾的类型均为字节流,凡是以Reader或Writer结尾的均为字符流。http://www.jobedu.com.cn6新科海学校JavaSE应用程序设计InputStream抽象类java.io.InputStream是所有字节输入流类型的父类,该类中定义了以字节为单位读取数据的基本方法,并在其子类中进行了分化和实现。三个基本的read方法:¾intread()¾intread(byte[]buffer)¾intread(byte[]buffer,intoffset,intlength)其它方法:¾voidclose()¾intavailable()¾skip(longn)¾booleanmarkSupported()¾voidmark(intreadlimit)¾voidreset()http://www.jobedu.com.cn7新科海学校JavaSE应用程序设计InputStream类层次FileInputStreamObjectInputStreamPipedInputStreamInputStreamDataInputStreamSequenceInputStreamPushbackInputStreamFilterInputStreamBufferedInputStreamStringBufferInputStreamLineNumberInputStreamByteArrayInputStreamhttp://www.jobedu.com.cn8新科海学校JavaSE应用程序设计OutputStreamjava.io.OutputStream与java.io.InputStream对应,是所有字节输出流类型的抽象父类。三个基本的write方法:¾voidwrite(intc)¾v