欢迎来到天天文库
浏览记录
ID:6029338
大小:767.92 KB
页数:18页
时间:2017-12-31
《46. java中的io流技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Java中的IO流技术1.IO流(Input&OUtput)用来处理设备之间的数据传输,IO系统的主要目的是对数据进行读写操作。2.Java对数据的操作是通过流的方式,输入流和输出流都是对象。3.Java中用于操作流的对象都存在于IO包中。4.IO流按照操作数据分为两种:字节流和字符流。5.IO流按照流向分为:输入流和输出流。输入需要读read方法,输出需要写write方法。注意:输入和输出是基于Java程序而言的,而Java程序一般又是在内存中运行,所以也可以看做是基于内存而言的,IO系统的数据流向是以Jav
2、a程序为参照物。将外设的数据读入内存称为读,即输入;将内存中数据写到外设中,称为写,即输出。6.Java的I/O:(1)I/O操作的目的:从数据源(多种多样,如文件、键盘、网络等等)当中读取数据,以及将数据写入到数据目的地(如文件、屏幕、网络等等)当中;(2)I/O的流向:方向需要参照物,相对而言,对于java程序本身而言,需要程序读取,即输入流,需要写到文件里,则就是输出流;(3)流的概念:输入流,输出流,就像水流一样。就像管道一样,是一点一点的进行的传输;在数据源与目的地之间建立了一个管道;(4)I/O的分
3、类:①输入流与输出流;②字节流与字符流;③节点流与处理流;7.以前只存在字节流,其实字节流可以读取任何文件。但是后来为了国际化统一,推出了字节流。由于不同的国家有不同的文字,同时又有自己的文字编码表,为了国际统一化,推出了国际统一编码Unicode编码。8.字符流的由来:字节流读取文字字节数据后,不直接操作,而是先查询指定的编码表,获取对应的文字,再对这个文字进行操作。所以,简单地说,字符流就是字节流+编码表。字符流是以字符为处理单位的。9.字节流的两个顶层父类(抽象基类):InputStream和Output
4、Stream。10.字符流的两个顶层父类(抽象基类):Reader和Writer。11.对上述四个基类加以说明:由这四种基类派生出来的子类名称都是以父类的名称作为子类名称后缀的。如InputStream的子类FileInputStream;Reader的子类FileReader等。而且这些子类的前缀都代表了这些子类的功能。12.I/O的核心类:InputStream和OutputStream这两个都是抽象类,父类;所有的字节输入流的类都是InputStream的子类,所有的字节输出流都是OutStream的子类
5、。其中两个常用的子类是FileInputStream和FileOutputStream;这些类都是属于java.io.*;包的,使用前需要导入此包,importjava.io.*;子类FileInputStream是用来读取硬盘中文件的数据,子类FileOutputStream是用来向硬盘中的文件写入数据。(1)read会返回一个读取字节的个数,调用时有三个参数,当没有读到数据时,返回-1;write也是三个参数。(2)byte[]b是比特类型的数组,off是偏移量,len是读取的最大长度。1.如果要操作文字数
6、据,建议优先考虑字符流,因为字符流就是基于这个目的出现的。大文件读写,利用循环即可,判断依据是read方法的返回值,如果返回-1说明读取结束。2.字符流:字符输入流Reader和字符输出流Writer;Reader和Writer都是抽象类,就是用来让其他类继承的,但是都有几个构造方法,抽象类的构造方法是为子类创建对象初始化用的。子类是FileReader与FileWriter;调用方法如同字节流,只是数组是字符数组了,如Intread(char[]c;intoff;intlen);字符流与字节流操作特别类似,只
7、不过是字节数组和字符数组,读写方法的不同(-er)。注意在读写之后要关闭读写方法。3.实验:将内存中的数据写到硬盘中指定的文件里。(1)硬盘数据的基本体现就是文件,所以找到一个处理文件的类即可。(2)创建一个可以向文件中写入字符数据的字符输出流对象;既然写数据,就必须在创建对象时就指定某个文件(用于存储数据的目的地),也就是说这个输出流类不能有空参数的构造方法。(3)利用Writer对象的write方法,写入数据。将数据写入到临时存储缓冲区中。利用flush方法进行刷新,可以将数据写到文件中。close方法关闭
8、流和关闭资源执行时,先进行刷新,将缓冲区中的数据写入到文件中。flush和close就相当于保存命令和关闭命令,关闭命令执行之前会提醒是否保存。4.对文件操作时,如果文件不存在,就会创建此文件;如果文件存在,就会覆盖原来的数据(首先将原来数据清空,再写入新的数据)。如果需要续写原文件,可以在构造方法中加入true。实现续写:FileWriter(String fileName)Cons
此文档下载收益归作者所有