- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IO流及文件操作
I/O 流 文件操作 流的概念、 Java I/O流、 缓冲区、管道、文件操作 目录 I/O流(字节流、字符流) Java标准输入输出 缓冲区 管道 文件操作 I/O流 输入/输出处理是程序设计中非常重要的一部分,例如从键盘、外部文件输入数据,向屏幕以及外部文件输出,以及在网络上与另一台计算机的数据交互。 Java将输入输出的数据抽象为“流(Stream)”,可以向流中写入数据,也可以从流中读出数据。 I/O流 流实际上是一个数据序列。 利用流作为基本输入输出操作的好处是:程序编码独立于所涉及的设备。 Java将输入输出的类及接口放在java.io包中。 除了严格限定,Java applet不能使用输入输出功能。 进行I/O操作时可能会发生异常,应当进行处理。 I/O流 “输入”与“输出”是站在“程序”的角度看的: I/O流 通过流直接进行输入与输出,一般只适用于数据量很少的情况。当传输数据量大的时候,Java提供了“缓冲流”:数据与外设进行交互时,先集中到内存中的一块缓冲区。 Java中提供了大量的类(60多个)以完成输入输出,它们形成了一个合理的自顶向下的逻辑结构。参见: input and output stream Reader and Writer 字节流与字符流 java.io包支持两种流:“字节流”和“字符流”。当向字节流中写入数据时,数据是以字节(byte)为单位的序列,与内存中形式相同,不发生任何转换。而字符流则是以字符为单位的数据序列。 Java中实现字节流的基类是InputStream和OutputStream,它们均直接继承自Object类。 InputStream和OutputStream均是抽象类,定义了输入和输出字节的基本操作。它们派生出了大量的具体功能的类。 InputStream类层次 OutputStream类层次 字节流与字符流 Java中实现字符流的基类是Reader和Writer,它们均直接继承自Object类。 Reader和Writer也是抽象类,定义了输入和输出字符的基本操作。用户不能直接创建其对象,只能通过其子类来创建。 Reader类层次 Writer类层次 InputStream OutputStream InputStream有3中方式从流中读入数据: int read() //读一个字节并返回,至流末尾时返回-1 int read(byte[ ] ) // 将数据读入byte[], 返回读的字节数 int read( byte[], int offset, int length ) 其它方法: void close( ) //关闭流 int available() //返回未读的字节数 long skip(long n) // 跳过n个字节 void mark(int) //标记当前流,并建立int大小缓冲区 InputStream OutputStream OutputStream有3中方式向流中写入数据: void write( int ) // 写一个字节 void write(byte[ ]) // 写一个字节数组 void write(byte[ ], int offset, int length ) 其它方法: void close( ) //关闭流 int flush() //强行写 Reader类的基本方法 int read();//读单个字符 int read(char cbuf[]);//读字符放入数组中 int read(char cbuf[], int offset, int length); //读字符放入数组的指定位置 void close( ) //关闭流。 long skip(long n) // 跳过n个字符 boolean markSupported( ) //测试打开的流是否支持书签 void mark(int) //标记当前流,并建立int大小缓冲区 void reset( ) // 返回标签出 boolean ready() //测试当前流是否准备好进行读 Writer类的基本方法 int write(int c) ; // 写单个字符 int write(char cbuf[]) ;// 写字符数组 int write(char cbuf[], int offset, int length) ; int write(String str) ; int write(String str, int offset, int length) ; voi
文档评论(0)