第08章 IO输入输出流

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

– FileReader常用的方法参考Reader类。
Java高级程序设计
I/O输入输出流
8.5 Reader和Writer
• FileWriter
– FileWriter类是Writer类的子类,它可以对文件进行 写入。它常用的构造方法如下:
• FileWriter(String name) 使用指定的文件名name创建 一个FileWriter的对象。 • FileWriter(File file) 使用指定的文件对象file创建一个 FileWriter的对象。
– FileOutputStream的创建不依赖于文件是否存在。 在创建对象时FileOutputStream在打开输出文件之 前创建它。
Java高级程序设计
I/O输入输出流
8.4 InputStream 和 OutputStream
– FileOutputStream的常用方法: • void close( )关闭输出流。关闭后的写操作会产生 IOException异常 • void flush( ) 刷新输出缓冲区 • void write(int b)向输出流写入单个字节。注意参数是 一个整型数,它允许你不必把参数转换成字节型就可以 调用write( ) • void write(byte buffer[ ])向一个输出流写一个完整的 字节数组 • void write(byte buffer[ ], int offset, int numBytes) 写数组buffer以buffer[offset]为起点的numBytes个字节区 域内的内容
• 8.6 RandomAccessFile类 • 8.7 PipedInputStream和PipedOutputStream • 8.8 过滤流和节点流
– 8.8.1 – 8.8.2 – 8.8.3 过滤流和节点流 BufferedInputStream和BufferedOutputStream DataInputStream和DataOutputStream
多线程 I/O输入输出流 Java数据库连接(JDBC) Java网络编程
• 第二部分
– 第一章 Java API – 第二章 Java与多媒体 – 第三章 Java Bean基础
Java高级程序设计
第八章 I/O输入输出流
• 8.1 流的概念 • 8.2 字节流、字符流和预订义流
– 8.2.1 – 8.2.2 – 8.2.3 字节流 字符流 预订义流
Java高级程序设计
I/O输入输出流
8.2 字节流、字符流 和预定义流
• 输入字节流的类层次图
Java高级程序设计
I/O输入输出流
8.2 字节流、字符流 和预定义流
• 输出字节流的类层次图
Java高级程序设计
I/O输入输出流
8.2 字节流、字符流 和预定义流
• 字符流
– 字符流提供了对字符进行输入输出处理的方法。字 节流与字符流主要的区别是他们的处理方式。 所有 的字节流都是基于字节对数据进行处理,而实际使 用中很多情况我们处理的数据是文本字符,所以 Java提供了基于字符处理的字符流。
Java高级程序设计
I/O输入输出流
8.6 RandomAccessFile类
• 类RandomAccessFile的声明为:
public class RandomAccessFile extends Object implements DataInput, DataOutput – 接口DataInput 中定义的方法主要包括从流中读取基本类型 的数据、读取一行数据、或者读取指定长度的字节数。如: readBoolean( )、readInt( )、readLine( )、readFully( ) 等。 接口DataOutput 中定义的方法主要是向流中写入基本类型 的数据、或者写入一定长度的字节数组。如:writeChar( )、 writeDouble( )、write( ) 等。 – 注意:RandomAccessFile可对文件实现读和写两种操作。
Java高级程序设计
I/O输入输出流
8.3 File类
• File类
– Java中的File类指文件和目录的集合。 – Java语言中通过File类来建立与磁盘文件的联系。 File类主要用来获取文件或者目录的信息,File类的 对象本身不提供对文件的处理功能,要想对文件实 现读写操作需要使用输入输出流。
Java高级程序设计
I/O输入输出流
8.3 File类
• 注意:
– Java能正确处理UNIX和Windows/DOS约定路径分 隔符。如果在Windows版本的Java下用斜线(/), 路径处理依然正确。记住,如果你用 Windows/DOS使用反斜线(\)的约定,你需要在 字符串内使用它的转义序列(\\)。Java约定是用 UNIX和URL风格的斜线来作路径分隔符。
• 8.3 File类 • 8.4 InputStream和OutputStream
– 8.4.1 – 8.4.2 FileInputStream FileOutputStream
Java高级程序设计
I/O输入输出流
第八章 I/O输入输出流
• 8.5 Reader和Writer
– 8.5.1 – 8.5.2 FileReader FileWriter
Java高级程序设计
• 第一部分
– 第一章 – 第二章 – 第三章 – 第四章 – 第五章 – 第六章 Java入门基础 异常 Java Applet类型 图形用户界面GUI(一)——AWT Java中的事件处理机制 图形用户界面GUI(二)——Swing
Java高级程序设计
– 第七章 – 第八章 – 第九章 – 第十章
Java高级程序设计
I/O输入输出流
8.6 RandomAccessFile类
Java高级程序设计
I/O输入输出流
8.2 字节流、字符流 和预定义流
– 按照传输的方向字符流可以分为Reader和Writer。 其中Reader是所有输入字符流的父类,Writer是所 有输出字符流的父类。 – 在Reader和Writer中定义了输入字符流和输出字符 流最基本的方法。
Java高级程序设计
I/O输入输出流
8.2 字节流、字符流 和预定义流
• 输入字符流的类层次图
Java高级程序设计
I/O输入输出流
8.2 字节流、字符流 和预定义流
• 输出字符流的类层次图
Java高级程序设计
I/O输入输出流
8.2 字节流、字符流 和预定义流
• 预订义流
– Java程序默认导入java.lang包,这个包中有一个 System类,这个类包含三个预定义静态常量,分别 是in、out和err。 – System. in是标准输入流,默认设备是键盘。 System. out是标准输出流,默认设备是控制台。 System. err是标准错误流,默认设备是控制台。
Java高级程序设计
I/O输入输出流
8.5 Reader和Writer
• 字符流为基于字符的输入输出处理提供了丰富 的功能,而Reader和Writer是所有字符流的基 类。Reader和Writer都是抽象类,它们定义了 字符流的一些常用方法(见书表8-5、表8-6)。
Java高级程序设计
I/O输入输出流
Java高级程序设计
I/O输入输出流
8.4 InputStream 和 OutputStream
• FileInputStream
– FileInputStream是InputStream类的子类。常用的 构造方法如下:
• FileInputStream(String name)使用指定的文件名 name创建一个FileInputStream的对象,如果文件不存在 会产生FileNotFoundException。 • FileInputStream(File file) 使用指定的文件对象来创建 一个FileInputStream的对象,如果文件不存在会产生 FileNotFoundException。
8.5 Reader和Writer
• FileReader
– FileReader类是Reader类的子类,它可以对文件进 行读取。常用的构造方法如下:
• FileReader(String name) 使用指定的文件名name创 建一个FileReader的对象,如果文件不存在会产生 FileNotFoundException。 • FileReader(File file) 使用指定的文件对象来创建一个 FileReader的对象,如果文件不存在会产生 FileNotFoundException。
– FileWriter类的创建不依赖于文件存在与否。在创建 文件之前,FileWriter将在创建对象时打开它来作为 输出 。
Java高级程序设计
I/O输入输出流
8.6 RandomAccessFile类
• RandomAccessFile类
– 有时候必须对文件的某些部分进行读取或者写入的 操作,也就是进行随机存取,即读写文件的位置要 能够在文件中随意的移动。而我们前面提到的输入 输出流都只能对文件进行顺序的读写,当要对文件 进行随机存取的时候我们使用RandomAccessFile 类来进行处理。
Java高级程序设计
I/O输入输出流
8.4 InputStream 和 OutputStream
– 下面的例子创建了两个使用同样磁盘文件且各含一 个上述构造方法的FileInputStream对象:
FileInputStream f1 = new FileInputStream("hello. txt") File f = new File("hello. txt "); FileInputStream f2 = new FileInputStream(f); • 尽管第一个构造方法可能更常用到,第二个构造方法允 许在把文件赋给输入流之前用File对象的方法更进一步检 查文件,例如判断文件是否存在。
Java高级程序设计
I/O输入输出流
8.1 流的概念
• 流概念的理解
• 流的分类
– 按流动的方向分为输入流和输出流 – 按流动的数据类型分为字符流和字节流 – 按流的建立方式和工作原理 分为节点流和过滤流
Java高级程序设计
I/O输入输出流
8.2 字节流、字符流 和预定义流
• 字节流
– 字节流提供了对字节进行输入输出处理的方法 。按 照传输的方向字节流可以分为InputStream和 OutputStream。其中InputStream是所有输入字节 流的父类,OutputStream是所有输出字节流的父类。 – 在InputStream和OutputStream中定义了输入字节 流和输出字节流最基本的方法,他们是抽象类。
Java高级程序设计
I/O输入输出流
8.4 InputStream 和 OutputStream
• FileOutputStream
– FileOutputStream是OutputStream类的子类。常用 的构造方法如下:
• FileOutputStream(String name) 使用指定的文件名 name创建一个FileInputStream的对象。 • FileOutputStream(File file) 使用指定的文件对象来创 建一个FileInputStream的对象。
Java高ቤተ መጻሕፍቲ ባይዱ程序设计
I/O输入输出流
8.4 InputStream 和 OutputStream
– FileInputStream的常用方法:
• int read( )如果下一个字节可读则返回一个整型,遇到文 件尾时返回-1 • int read(byte buffer[ ])试图读取buffer.length个字节到 buffer中,并返回实际成功读取的字节数。遇到文件尾时 返回-1 • int read(byte buffer[ ], int offset, int numBytes)试图 读取buffer中从buffer[offset]开始的numBytes个字节,返 回实际读取的字节数。遇到文件尾时返回-1 • void close( )关闭输入源。关闭之后的读取会产生 IOException异常
相关文档
最新文档