Java中输出输入流-Read.PPT

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

第18章 Java中输出输入流 在学习输出输入流之前,先来了解一下实际中的管道的问题。管道通常是可以双向流通的,Java中的流也是这样的,有输出流和输入流。管道是可以输送石油,也是可以输送水的,Java中的流也是可以输送不同的东西的,包括字节和字符等内容。Java中的输出输入流又称为IO流。通过本章的学习,读者应该能够完成如下几个目标。 了解什么是IO流。 掌握流的分类。 熟练掌握流如何进行文件操作。 18.1 IO流简介 学习如何使用I/O流进行输入/输出操作之前,首先应当了解I/O流的基本原理与分类,这样才能恰当的运用各种I/O流进行不同的输入/输出操作。 18.1.1 什么是IO流 数据流是形象的概念,可以理解为是一种“数据的管道”。管道中流动的东西可以是基于字节,也可以是基于字符的等。就好像管道里面可以流动水,也可以流动石油一样,当程序需要读取数据的时候,就会开启一个通向数据源的管道,这个数据源可以是存放在硬盘中的文件,也可以是内存中的数据,或是网络上的数据。 Java中的数据流分为2种,一种是字节流,另一种是字符流。这两种流主要由4个抽象类来表示:InputStream,OutputStream,Reader,Writer,输入输出各两种。其中InputStream和OutputStream表示字节流,Reader和Writer表示字符流,其他各种各样的流均是继承这4个抽象类而来的。 18.1.2 节点流与处理流 根据流功能层次的不同可以将其分为两类:节点流(Node Streams)与处理流(Processing Streams),下面列出了这两种流的异同。 节点流一般用于直接从指定的位置进行读/写操作,例如磁盘文件、内存区域、网络连接等,其中一般只提供了一些基本的读写操作方法,功能比较单一。 处理流往往是用于对其他输入/输出流进行封装,对内容进行过滤处理,其中一般提供了一些功能比较强大的读写方法。 实际应用中,通常是将节点流与处理流二者结合起来使用。节点流直接与指定的源或目标相连,例如某个文件、某个网络连接等。而处理流则对节点流或其他处理流进一步进行封装,提供更丰富的输入/输出操作能力,例如缓冲、按字符串行读写等。 18.1.3 字节流与字符流 根据流处理数据类型的不同也可以以将其分为两类:字节流与字符流,下面列出了这两种流的不同之处。 字节流以字节为基本单位来处理数据的输入/输出,一般都用于对二进制数据的读写,例如声音、图象等数据。 字符流以字符为基本单位来处理数据的输入和输出,一般都用于对文本类型数据的读写,例如文本文件、网络中发送的文本信息等。 表列出了Java I/O中字节流与字符流的四个抽象基类,Java I/O中的其他字节流与字符流都派生自这四个抽象基类。 18.1.4 抽象基类 字节流和字符流的抽象基类包括InputStream类、OutputStream类、Reader类和Writer类组成,在后面将要讲到的流类都是继承这几个抽象基类的。 1. InputStream类:InputStream类是一个输入流,同样也是一个字节流。InputStream类是表示字节输入流的所有类的超类。其中定义了一些基本的读取字节数据流的方法,由其子类继承并扩展。 public int available() throws IOException获取可以从此输入流读取(或跳过)的字节数 public void close() throws IOException关闭输入流,同时释放系统资源 public void mark(int readlimit)在输入流中标记位置,参数readlimit为位置参数 public boolean markSupported()用于测试该输入流是否支持mark和reset方法 public abstract int read() throws IOException从输入流中读取下一个数据字节 public int read(byte[] b) throws IOException从输入流中读取字节数据,并存入字节数组b中 public int read(byte[] b,int off,int len) throws IOException从输入流中读取len个数据字节,并存入字节数组b中 public void reset() throws IOException将此流重新定位到最后一次调用mark方法时所处的位置 public long skip(long n) throws IOException跳过并且放弃输入流中的n个字节数据 使用InputStream类是可能发生IOException异常的,所以在使用时是要进行异常处理的。 OutputStream类

文档评论(0)

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

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

1亿VIP精品文档

相关文档