l项i如st12.docVIP

  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文档。上传文档
查看更多
第12章 输入/输出、小应用程序和其他主题 本章介绍Java的两个重要的包:io和applet。io包支持Java的基本I/O(输入/输出)系统,包括文件的输入/输出。applet包支持applet(小应用程序)。对输入/输出和applet的支持是来源于Java的内核API库,而不是语言关键字。因为这个原因,关于这些主题的深入讨论在本书的第2部分可以见到,这些讨论验证了Java的API类。本章讨论这两个子系统的基础部分,这样你可以看到它们怎样融入Java语言,怎样符合Java编程和执行环境的大量内容。本章同样介绍了Java的最后的关键字:transient,volatile,instanceof,native以及strictfp。 12.1 输入/输出基础 在阅读前面的第11章时你也许注意到在例题中输入/输出没有很多的应用。实际上,除了print()和println(),基本没有运用输入/输出方法。原因很简单:很多实际的Java应用程序不是基于文本的控制台程序。相反,它们是与用户交流的依赖于抽象窗口工具集(AWT)的用于绘图的小应用程序。尽管基于文本的程序作为教学实例是很出色的,它们无法胜任JAVA在实际中的重要应用。同样Java对外设输入/输出的支持也是有限的,并且用起来有些笨拙——甚至是在简单的例子程序中。基于文本的控制台输入/输出对于Java程序并不是十分重要。 尽管在前面的章节中Java 没有提供与文件和网络相关的强大的和灵活的输入/输出支持,Java的输入/输出系统是紧密相连并且是具有一致性的。实际上,一旦你理解了它的基本原理,输入/输出系统的其他部分就变得易于掌握了。 12.1.1 流的概念 Java程序通过流来完成输入/输出。流是生产或消费信息的抽象。流通过Java的输入/输出系统与物理设备链接。尽管与它们链接的物理设备不尽相同,所有流的行为具有同样的方式。这样,相同的输入/输出类和方法适用于所有类型的外部设备。这意味着一个输入流能够抽象多种不同类型的输入:从磁盘文件,从键盘或从网络套接字。同样,一个输出流可以输出到控制台,磁盘文件或相连的网络。流是处理输入/输出的一个洁净的方法,例如它不需要代码理解键盘和网络的不同。Java中流的实现是在java.io包定义的类层次结构内部的。 注意:如果你熟悉C/C++,你已经对流的概念很熟悉了。JAVA中流的实现跟C/C++中有些相似。 12.1.2 字节流和字符流 Java 2 定义了两种类型的流:字节类和字符类。字节流(byte stream)为处理字节的输入和输出提供了方便的方法。例如使用字节流读取或书写二进制数据。字符流(character stream)为字符的输入和输出处理提供了方便。它们采用了统一的编码标准,因而可以国际化。当然,在某些场合,字符流比字节流更有效。 Java的原始版本(Java 1.0)不包括字符流,因此所有的输入和输出都是以字节为单位的。Java 1.1中加入了字符流,某些字节形式的类和方法不受欢迎。这也是为什么没用字符流的老代码在适当的地方需要更新的原因。 需要声明:在最底层,所有的输入/输出都是字节形式的。基于字符的流只为处理字符提供方便有效的方法。 下面是对字节流和字符流的概述。 字节流类 字节流由两个类层次结构定义。在顶层有两个抽象类:InputStream 和 OutputStream。每个抽象类都有多个具体的子类,这些子类对不同的外设进行处理,例如磁盘文件,网络连接,甚至是内存缓冲区。字节流类显示于表12-1中。本章的后面将讨论一些这样的类。其他的类的描述在第2部分。记住,要使用流类,必须导入Java.io包。 表12-1 字节流类 流类 含义 BufferedInputStream 缓冲输入流 BufferedOutputStream 缓冲输出流 ByteArrayInputStream 从字节数组读取的输入流 ByteArrayOutputStream 向字节数组写入的输出流 DataInputStream 包含读取Java标准数据类型方法的输入流 DataOutputStream 包含编写Java 标准数据类型方法的输出流 FileInputStream 读取文件的输入流 FileOutputStream 写文件的输出流 FilterInputStream 实现 InputStream FilterOutputStream 实现 OutputStream InputStream 描述流输入的抽象类 OutputStream 描述流输出的抽象类 PipedInputStream 输入管道 PipedOutputStream 输出管道 PrintStream 包含print( ) 和 pr

文档评论(0)

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

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

1亿VIP精品文档

相关文档