java求洁净数代码 java数字计算( 二 )


io包支持Java的基本I/O(输入/输出)系统 , 包括文件的输入/输出 。对输入/输出的支持是来源于Java的内核API库,而不是语言关键字 。
一、输入/输出基础
很多实际的Java应用程序不是基于文本的控制台程序 。尽管基于文本的程序作为教学实例是很出色的,它们无法胜任JAVA在实际中的重要应用 。Java对外设输入/输出的支持也是有限的,并且用起来有些笨拙——甚至是在简单的例子程序中 。基于文本的控制台输入/输出对于Java程序并不是十分重要 。
Java 提供了与文件和网络相关的强大的和灵活的输入/输出支持,Java的输入/输出系统是紧密相连并且是具有一致性的 。
1.1 流的概念
Java程序通过流来完成输入/输出 。流是生产或消费信息的抽象 。流通过Java的输入/输出系统与物理设备链接 。尽管与它们链接的物理设备不尽相同,所有流的行为具有同样的方式 。这样,相同的输入/输出类和方法适用于所有类型的外部设备 。这意味着一个输入流能够抽象多种不同类型的输入:从磁盘文件,从键盘或从网络套接字 。同样 , 一个输出流可以输出到控制台,磁盘文件或相连的网络 。流是处理输入/输出的一个洁净的方法,例如它不需要代码理解键盘和网络的不同 。Java中流的实现是在java.io包定义的类层次结构内部的 。
1.2 字节流和字符流
要使用流类,必须导入Java.io包 。Java 2 定义了两种类型的流:字节类和字符类 。字节流(byte stream)为处理字节的输入和输出提供了方便的方法 。例如使用字节流读取或书写二进制数据 。字符流(character stream)为字符的输入和输出处理提供了方便 。它们采用了统一的编码标准,因而可以国际化 。在某些场合,字符流比字节流更有效 。在最底层,所有的输入/输出都是字节形式的 。基于字符的流只为处理字符提供方便有效的方法 。下面是对字节流和字符流的概述 。
1.2.1 字节流类
字节流由两个类层次结构定义 。在顶层有两个抽象类:InputStream 和 OutputStream 。每个抽象类都有多个具体的子类 , 这些子类对不同的外设进行处理,例如磁盘文件 , 网络连接,甚至是内存缓冲区 。字节流类显示于表1-1中 。
表1-1 字节流类
流类 含义
BufferedInputStream缓冲输入流
BufferedOutputStream缓冲输出流
ByteArrayInputStream从字节数组读取的输入流
ByteArrayOutputStream向字节数组写入的输出流
DataInputStream包含读取Java标准数据类型方法的输入流
DataOutputStream包含编写Java标准数据类型方法的输出流
FileInputStream读取文件的输入流
FileOutputStream写文件的输出流
FilterInputStream实现InputStream
FilterOutputStream实现OutputStream
InputStream描述流输入的抽象类
OutputStream描述流输出的抽象类
PipedInputStream输入管道
PipedOutputStream输出管道
PrintStream包含print()和println()的输出流
PushbackInputStream 支持向输入流返回一个字节的单字节的“unget”的输入流
RandomAccessFile支持随机文件输入/输出
SequenceInputStream两个或两个以上顺序读取的输入流组成的输入流
抽象类InputStream 和 OutputStream定义了实现其java求洁净数代码他流类的关键方法 。最重要的两种方法是read()和write() , 它们分别对数据的字节进行读写 。两种方法都在InputStream 和OutputStream中被定义为抽象方法 。它们被派生的流类重载 。
1.2.2 字符流类
字符流类由两个类层次结构定义 。顶层有两个抽象类:Reader和Writer 。这些抽象类处理统一编码的字符流 。Java中这些类含有多个具体的子类 。字符流类如表1-2所示 。

推荐阅读