网站大量收购独家精品文档,联系QQ:2885784924

java程序设计教程Java输入输出.ppt

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

第12章 Java输入输出 本章学习目标 理解流的概念。 掌握InputStream和OutputStream及派生类。 掌握Reader和Writer及其派生字符流类。 掌握File类和RandomAccessFile类的应用。 了解java.io包的包装技术和设计思想。 I/O 计算机程序的最一般模型其实可以归纳为:输入、计算和输出。 输入和输出是人机交互的重要手段,一个设计合理的程序应该首先允许用户根据具体情况输入不同的数据,然后经过程序算法的计算处理,最后以用户容易接受的方式输出结果。 12.2 流的概念 流(Stream)是对数据传送的一种抽象,当预处理数据从外界“流入”程序中,就称之为输入流,相反,当程序中的结果数据“流到”外界(如显示屏幕、文件等)时,就称之为输出流 输入或输出其实是从程序角度来看待的。 在Java类库中,I/O(输入和输出)部分的内容不少,这点看看JDK的java.io包就知道了,它涉及的主要关键类有:InputStream、OutputStream、Reader、Writer和File等。 Java I/O类 InputStream和OutputStream类是用来处理字节(8位)流的。 Reader和Writer类用来处理字符(16位)流。 File类则用来处理文件。 标准输出 System.out是标准输出流对象,可以通过调用它的println()、print()或write()方法来实现对各种数据的输出显示。 标准输入 System.in是标准输入流对象,可以通过调用它的read()方法来实现从键盘读入数据的功能。 由于输入比输出容易出错,Java对输入操作强制设置了异常保护,程序中必须抛出异常或捕获异常,否则程序将不能编译通过。 Hint 对于多数程序设计语言(如C和Pascal)来说,它处理的一般字符都是单字节的,而对于Java来说,情况比较特别,当用户输入一般字符(此时为单字节)给Java程序后,若程序中用来存放该字符的数据类型为char时,原本的单字节会自动在高位补0扩充为双字节进行存储。 Java采用双字节存储原本为单字节的一般字符,主要是为了将一般字符与其他字符(如汉字字符)统一起来,方便处理。 后面介绍的(Unicode)字符流,即指双字节流。 标准输入功能扩充 原本System.in标准输入流对象只能提供以字节为单位的数据输入,通过引入InputStreamReader和BufferedReader类的对象对其进行两次包装(第一次将System.in对象包装为reader对象的内嵌成员,第二次又将reader对象包装为input对象的成员),这样,就可以使用BufferedReader类提供的readLine 方法,实现以行为单位的字符串输入功能。当获取字符串数据后,还可以根据具体的数据类型进行相应转换。 12.3 字节流 以字节为处理单位的流称为字节流,字节流相应地分为字节输入流和字节输出流两种。 InputStream 所有字节输入流的基类为InputStream,它是一个从Object类直接继承而来的抽象类,类中声明有多个用于字节输入的方法,为其他字节输入流派生类奠定了一个基础,它与其他派生类的继承关系如下图所示 : ByteArrayInputStream ByteArrayInputStream输入流类含有四个成员变量:buf 、count、 mark和 pos。buf为字节数组缓冲区,用来存放输入流;count为计数器,记录输入流数据的字节数;mark用来做标记,以实现重读部分输入流数据;pos为位置指示器,指明当前读指针的位置,即已读取count-1个字节的数据。 ByteArrayInputStream输入流类提供的方法基本上与它的基类InputStream是一样的,因此,ByteArrayInputStream可以说是一个比较简单和基础的字节输入流类。 FileInputStream FileInputStream类是用来实现从文件中读取字节流数据的,它也是从抽象类InputStream直接继承而来,不过,有些方法,如mark()和reset()等,它并不支持,因为FileInputStream输入流只能实现文件的顺序读取。 另外,FileInputStream既然属于字节输入流类,那么它就不适合来读取字符文件,而适合读取字节文件(如图像文件)。字符文件的读取可以采用后面要介绍的字符输入流类FileReader。 FilterInputStream FilterInputStream是为了包装InputStream流而引入的中间类,说它是中间类,是因为它的构造方法的访问属性为protected的,即用户不

文档评论(0)

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

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

1亿VIP精品文档

相关文档