- 1、本文档共74页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[Java课件JavaIO操作
Java语言与系统设计 中南大学信息科学与工程学院 计算机工程系 黄家玮 jiaweihuang@csu.edu.cn 第11章 Java IO操作 数据流的概念 输入/输出流类 标准输入和输出流 文件处理和目录管理 7.1 输入/输出流概念 流是Java语言中,用来处理输入/输出(I/O)的方式。采用流的方式,使得程序员在处理不同的数据或数据存储时,更加方便、鲜明和统一。 所谓的“数据流(stream)”指的是所有数据通信通道中数据的起点和终点。如:执行的程序通常会输出各种信息到显示器,使用户可以随时了解程序的状态信息,而这些信息的通道就是一个数据流,其中的数据就是要显示的信息,数据的起点(源)就是执行的程序,而数据的终点就是显示器。 以程序为参照,若程序是数据流动的起点,即数据的提供者,这个数据流就是一个“输出数据流”;若程序是数据流动的终点,这个数据流就是一个“输入数据流”。 利用数据流可以简化程序的编写。对于输入数据流(程序是数据流的终点),一旦数据流建立完成后,程序可以不必关心数据流的起点是什么,只要读取自己需要的数据即可;对于输出数据流(程序是数据流的起点),一旦建立起数据流后,程序只负责提供数据,而不必理会数据流的目的地具体是什么(可能是显示器、打印机、文件、网络中的远端客户等)。 以文件输入输出为例,此时,我们可以将硬盘文件比做一个水池,内存要进行输入(读)操作,需要用一个水管连到水池,数据顺着“水管”从硬盘进入内存,此时,这个水管就是输入流;反之,内存要进行输出(写)操作,需要用一个水管连到水池,数据顺着“水管”从内存进入硬盘,此时,这个水管就是输出流。 实例:读入不同类型的数据 import java.util.Scanner; public class s { public static void main(String[] args) { Scanner s = new Scanner(System.in); String str = s.next(); //receive string Integer i = s.nextInt(); //receive integer Double d = s.nextDouble(); //receive double System.out.println(str+ +i+ +d); } } 7.2 输入/输出的流类 在java.io包中提供了一系列用于处理输入/输出的流类。 流从功能上可分为两大类:输入流和输出流。 从流结构上可分为字节流和字符流,字节流以字节为处理单位,字符流以字符为处理单位。 字符是由字节组成。在Java中,将所有的字符用Unicode编码,占2个字节。Java早期版本仅仅针对字节,后来随着Java使用范围的扩大,字节操作对一些中文、日文等双字节字符不太方便,因此,又增加了字符输入输出相关的API。 比如,如果将“中”以字节输出,则对方收到的内容为两个字节, 但是可能是乱码。 如果将“中”以字符输出,则对方收到的内容为“中”,占两个字节。 字节流的输入流和输出流的基础类是InputStream和OutputStream这两个抽象类,具体的输入/输出操作则由这两个类的子类完成。 字符流的输入流和输出流的基础类是Reader和Writer这两个抽象类。 Java中还提供了一个特殊类RandomAccessFile,它允许对文件进行随机访问,使用该类的对象可以实现同时对文件进行输入(读文件)或输出(写文件)操作。 1 字节流InputStream和OutputStream类 InputStream类中包含一套以字节为处理单位的输入流处理方法,以完成最基本的向程序中读入数据的功能。InputStream是一个抽象类,具体操作的实现由其子类完成。 OutputStream类中包含一套以字节为处理单位的输出流处理方法,以完成最基本的输出程序中数据的功能。OutputStream是一个抽象类,具体操作的实现由其子类完成。 int available() :获得从输入流中所能读取的字节的个数 void close() :关闭输入流 int read():读取输入流中的下一个字节,返回该字节的ASCII值,范围在0~255之间;若流结束,则返回-1 int read(byte []a):从输入流中读取字节,并存储到字节数组a中。返回值为实际读取的字节数;若流结束,返回-1 int read(byte []a, int off, int length):从输入流中读取长度为length个字节的数据,并存储于数组a索引off位置开始处,并返回读取的字节数,若流结束,则返回-1 long skip(l
文档评论(0)