- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java 语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。在Java 类库中,IO 部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流, 对象流,zip 文件流 本文的目的是为大家做一个简要的介绍。
流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流, 这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样,如下图:
Java 中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java 中其他多种多样变化的流均是由它们派生出来的:
I
I t11p u t St ream
F1leinput5treamPipedinputStreamLif n eNun be
F1leinput5tream
PipedinputStream
Lif n eNun be rI npu ·t 5t ream
肛d t, a I 『mI llJI'亡S亡 l d lll
Fi l t e r[ n pu t 5t rre ma
ByteArrayinputStream
Pl!.!lshbackI1r11pl!.!ltSt ream
5eq ue lillc eI npu ·t St r e am
,.
Fi l 的 ut put St ream
Pi
Pi pe心 ut put St re叩
DataOutputSt ream
Fil t e 心 ut put St re叨 l
Out put St re叩
Pri nt S.t re叩
:二二;
)( Obj ectOut put St re叩
)
BufferedReader
BufferedReader
L1 neNumberReader
CharAr rayReade r
InputSt reamReade r
Fi 1 eReade r
Reader
F 11 七巳『,R巳社d巴『.
Pu 5hbd L K R巳ad巴『.
PipedReader
St r1 n gRead e r
BufferedWr1ter
BufferedWr1ter
CharAr ra洲 r1 t e r
W r·1 te r
Oup ut St reamReade r
Fi l eW ri t e r
F11 t e r泊, 1t e r Pi pedW ri t e r St ri n gW r i t e r
Fi1·t e rwr·r1 te r
在这其中InputStream 和 OutputStream 在早期的Java 版本中就已经存在了,它们是基于字节流的,而基于字符流的Reader 和Writer 是后来加入作为补充的。以上的层次图是Java 类库中的一个基本的层次体系。
在这四个抽象类中,InputStream 和 Reader 定义了完全相同的接口:
int
int read()
int read(char cbuf[])
int read(char cbuf[], int offset, int length)
而 OutputStream 和Writer 也是如此:
int
int write(int c)
int write(char cbuf[])
int write(char cbuf[], int offset, int length)
这六个方法都是最基本的,read()和 write()通过方法的重载来读写一个字节,或者一个字节数组。
更多灵活多变的功能是由它们的子类来扩充完成的。知道了Java 输入输出的基本层次结构以后,本文在这里想给大家一些以后可以反复应用例子,对于所有子类的细节及其功能并不详细讨论。
import
import java.io.*;
public class IOStreamDemo {
public void samples() throws IOException {
//1. 这是从键盘读入一行数据,返回的是一个字符串
BufferedReader stdin =new BufferedReader(new InputStreamReader(System.in); System.out.print(Enter a line:); System.out.println(stdin.readLine());
//2. 这是从文件中逐行读入数据
Buff
文档评论(0)