第7章 输入输出.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 输入输出.ppt

第7章 输入/输出 ;7.1 流 和 文 件 ; 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件、内存或是网络连接。当程序需要写入数据的时候,就会开启一个通向目的地的流。可以想像,数据好像在其中流动,如图7.1所示。 ;图7.1 流的概念; Java中的流按照处理数据的单位可分为两种:一种是字节流,另一种是字符流,分别由四个抽象类来表示:InputStream、OutputStream、Reader和Writer。Java中的其他多种多样的流类均是由它们派生出来的。早期的Java版本仅提供InputStream和OutputStream,它们是基于字节的流,而基于字符流的Reader和Writer是作为补充后来加入的。 本书主要介绍字节流的使用。字符流的使用与字节流十分相似,只是它们的读/写单位是Unicode字符,而字节流的读/写单位是字节。; 按照对流中数据的处理方式,Java语言中的流可分为文本流和二进制流。文本流是一个字符序列,在文本流中可按需要进行某些字符的转换,被读/写的字符和外部设备之间不存在一一对应的关系,被读/写字符的个数可能与外部设备中字符个数不一样。例如标准输出流System.out就是文本流,程序中不同类型的数据经过转换后输出到标准输出设备。二进制流在读/写过程中不进行转换,外部设备中的字节(或字符)与被读/写的字节(或字符)一一对应。 ; 由于Java输入/输出涉及的类非常多,本章首先介绍几个基本的抽象类,然后着重讨论文件的输入/输出操作。本书第8章将讨论部分有关网络编程的流类的使用。 ; 7.1.2 文件 文件也是一个逻辑概念。计算机系统中的文件不仅指通常的磁盘文件,还包括很多外部设备,如键盘、显示器、打印机等,都可以看成是文件。 Java语言中对文件的读/写操作都是通过流来完成的。通过对文件的打开操作,可以建立流与特定文件之间的联系。可以使用输入流从文件里读出字节,并将这些字节保存到临时的字节数组里,或者使用输出流把它们写到新的文件里。 ; 值得注意的是,并不是所有的文件都具有相同的功能,例如,磁盘文件支持随机存取,而标准输入和标准输出只能顺序存取。 使用关闭操作,可以解除流与特定文件之间的联系。对于一个输出流,关闭流会使其相关的缓冲区中的所有内容写到外部设备。在程序终止前,应该关闭所有打开的流。;7.2 基本输入/输出类; ● public int read(byte b[]) throws IOException; ● public int read(byte b[],int offset,int length) throws IOException。 read方法有几种重载形式,可以读取一个字节或一组字节。若流中数据已读完,例如遇到磁盘文件尾,则返回-1。第三种形式的参数offset指将结果放在数组b[]中从第offset个字节开始的空间,length为字节长度。 ; InputStream类中还定义了其他一些基本的方法: ● public int available() throws IOException:返回输入流中可用的字节数。此方法对InputStream的有些派生类无效,会返回零字节的错误结果。 ● public void close() throws IOException:关闭输入流并释放资源。 ● public boolean markSupperted():返回布尔值,说明此流能否做标记。 ; ● public synchronized void mark(int readlimit):为当前流做标记。其参数说明在标记失效前可以读多少字节,这个值通常也就设定了流的缓冲区大小。 ● public synchronized void reset() throws IOException:返回到上一次做标记处。 ● public long skip(long n) throws IOException:从输入流跳过几个字节。返回值为实际跳过的字节数。 ; 输入流只能从外部设备顺序读取数据,为了能重复

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档