java第8章文件、流和输入输出技术剖析.ppt

java第8章文件、流和输入输出技术剖析.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java第8章文件、流和输入输出技术剖析

文件、流和输入输出技术 第8章 文件、流和输入输出技术 主要内容 8.1 I/O流概述 什么是流 8.2 I/O流类 I/O流的层次: 字符流、 字节流、 标准输入/输出流 8.3 过滤流与流的串接 8.4 文件流类与文件操作 8.5 对象串行化 总结 作业 8.1 I/O 流概述 输入/输出处理是程序设计中非常重要的一部分,比如从键盘读取数据、从文件中读取数据或向文件中写数据等等。 Java把这些不同类型的输入、输出源抽象为流(stream),用统一接口来表示,从而使程序简单明了。 Jdk 提供了包java.io,其中包括一系列的类来实现输入/输出处理。进行I/O操作时可能会产生I/O异常,属于非运行时异常,应该在程序中处理。如:FileNotFoundException, EOFException, IOException 什么是流 流实际上是一个数据序列。采用流的机制可以使数据有序地输入和输出。 输入流与输出流。 8.2 I/O流类 Java有各种各样的执行I/O的流,在java.io包中定义了这些流,其层次结构图如图8.3所示(P192)。编写程序时,java.io包必须被执行输入输出的程序导入。 输入输出流可以从以下几个方面进行分类: 从流的方向划分:输入流和输出流; 从流的分工划分:节点流(从特定的地方读写的流类,例如:磁盘或一块内存区域)和处理(过滤)流(使用节点流作为输入或输出。过滤流是使用一个已经存在的输入流或输出流连接创建的); 从流的内容划分:面向字符的流和面向字节的流。 8.2.1 字符流 Java中的字符使用的是Unicode编码,每个字符占有两个字节,即16bit。字符流是以16位的Unicode码表示的字符为基本处理单位,进行文本数据的读写,可以实现Java程序中的内部格式和文本文件、显示输出、键盘输入等外部格式之间的转换。 Reader和Writer是java.io包中所有字符流的抽象基类。提供了输出字符的API及其部分实现。 1.Reader Reader类是处理所有字符流输入类的父类。 主要有以下方法: 读取字符   public int read() throws IOException; /*读取一个字符,返回值为读取的字符*/   public int read(char cbuf[]) throws IOException; /*读取一系列字符到数组cbuf[]中,返回值为实际读取的字符的数量*/   public abstract int read(char cbuf[],int off,int len) throws IOException;   /*读取len个字符,从数组cbuf[]的下标off处开始存放,返回值为实际读取的字符数量,该方法必须由子类实现*/ 标记流  public boolean markSupported(); /*判断当前流是否支持做标记*/   public void mark(int readAheadLimit) throws IOException;    /*给当前流作标记,最多支持readAheadLimit个字符的回溯。*/  public void reset() throws IOException; /*将当前流重置到做标记处*/ 关闭流   public abstract void close() throws IOException; java.io包中Reader的类层次 2.Writer 向输出流写入字符  public void write(int c) throws IOException;   //将整型值c的低16位写入输出流  public void write(char cbuf[]) throws IOException;  //将字符数组cbuf[]写入输出流  public abstract void write(char cbuf[],int off,int len) throws IOException;   /*将字符数组cbuf[]中的从索引为off的位置处开始的len个字符写入输出流*/  public void write(String str) throws IOException; //将字符串str中的字符写入输出流 public void write(String str,int off,int len) throws IOException; /*将字符串str 中从索引off开始处的len个字符写入输出流*/ flush( ) 刷空输出流,并输出所有被缓存的字节。 关闭流   public abstract void close() throws IOExce

您可能关注的文档

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档