第4讲JAVA IO流.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第4讲JAVA IO流.pptx》由会员分享,可在线阅读,更多相关《第4讲JAVA IO流.pptx(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java IOJava IO流流2、File类3、字节流1、IO流概念及分类4、字符流5、随机访问流6、标准流7、对象序列化第七章第七章 流流1、IO流概述及分类 大部分程序都需要输入/输出处理,比如从键盘读取数据、向屏幕中输出数据、从文件中读或者向文件中写数据、在一个网络连接上进行读写操作等。在Java中,对数据的输出输入操作以流的方式进行,J2SDK提供了各种各样的流用以获取不同种类的数据。1、IO流概述及分类分类:分类:按照数据的输入输出方式分为:输入流(Input Stream)和输出流(Output Stream)输入流(Input Stream)输出流(Output Stream)
2、按照处理数据的单位不同分为字节流和字符流。1、IO流概述及分类(1)Java把处理二进制数据的流称为字节流,字节流每次处理一个字节的数据;以Stream结尾,说明是一字节流。(2)把处理某种格式的特定数据称为字符流,字符流每次处理一个字符的数据。以Reader Writer结尾,说明是一字符流。按照流的功能不同分为节点流和过滤流。过滤流1、IO流概述及分类字节流字符流输入流InputStreamReader输出流OutputStreamWriterJ2SDK所提供的所有流类型位于java.io内都分别继承自以下四种抽象流类型。1、IO流概述及分类2、File类 在Java中,专门提供了File
3、类来获取和处理磁盘上文件和目录的相关信息。File类是java.io包中唯一处理磁盘文件和目录的类,它定义的对文件和目录操作的方法都是与平台无关的,通过使用File类提供的各种方法能够创建、删除文件和目录,获取磁盘上指定文件和目录的相关信息。File类的构造方法:类的构造方法:File(String fileName)完整路径或相对路径File(String directory,String fileName)指定文件目录和文件名File(File directory,String fileName)使用File对象来表示文件目录注意:调用构造函数只能创建一个File对象,而不是在文件系统中创
4、建了一个文件TestFile1.javaFile file1=new File(Hello.java);File file2=new File(/);File file3=new File(file2,Hello.java);File file4=new File(/,Hello.java);例如:例如:再如:如何创建一个文件或目录如何创建一个文件或目录1、调用File对象的createNewFile()2、调用FileOutputStream()创建一个文件:创建一个文件:创建一个目录:创建一个目录:1、mkdir();创建父目录已经存在的目录2、mkdirs();创建多层目录注意:注意:在
5、在Unix/Linux操操作作系系统统下下,路路径径分分隔隔符符为为“/”,而而在在Windows和和DOS下下的的路路径径分分隔隔符符为为“”。Java对对这这两两种种分分隔隔符符都都支支持持。但但是是如如果果使使用用“”作作为为分分隔隔符符,注注意意要要以以转转义义字字符符“”来代替,例如以来代替,例如以“c:sunjdk”表示表示“c:sunjdk”。在在Java程程序序中中,我我们们可可以以使使用用File.pathSeparator来来表表示示与系统无关的路径分隔符。与系统无关的路径分隔符。String separator=File.separator;String fileName
6、=myfile.txt;String directory=mydir1+separator+mydir2;File f=new File(directory,fileName);File类的其它方法类的其它方法:见课本表7-2 例子:7-1 FileDemo.java3、字节流、字节流 字节流类是专门处理以字节为传输单位的IO流类。我们知道计算机中的数据处理基本上都是以字节为单位进行处理,这类数据保存的文件也称为“二进制文件”,如果要读写这些二进制文件,就需要使用Java中的字节流对象。InputStream和OutputStream分别是输入字节流与输出字节流的抽象父类。InputStrea
7、m抽象类及其派生子类抽象类及其派生子类方法方法说明说明publicvoidclose()关闭输入流以释放占用的系统资源publicabstractintread()从输入流中读取下一个字节的数据,返回该字节的ASCII码值,如果到文件的末尾,则返回-1publicintread(byteb)从输入流中读取一部分字节并将它们存放到字节数组b中,如果读取成功返回读取字节的个数,如果到文件的末尾返回-1publicintread(byteb,intoff,intlen)从输入流中读取len个字节将它们存放到字节数组b中,并且存放到b的从off位置后面。如成功返回读取字节的个数,否则返回-1 Inpu
8、tStream类的主要方法类的主要方法OutputStream抽象类及其派生子类抽象类及其派生子类方法方法说明说明publicvoidclose()关闭输出流并释放占用的系统资源publicvoidflush()刷新输出流并强制写出所有缓冲区的数据publicabstractvoidwrite(intb)将一个指定的字节数据写到输出流中publicvoidwrite(byteb)将一个字节数组b中的全部数据写到输出流中publicvoidwrite(byteb,intoff,intlen)将一个字节数组b中从off位置开始长为len的字节写到输出流 OutputStream类的主要方法类的主要
9、方法FileInputStream类类 和和 FileOutputStream类类FileInputStream 和FileOutputStream 称为文件流,是两个最常用字节流,用于对磁盘文 件的读写操作。一旦创建了文件流对象,系统就会创建与指定文件对象链接的字节流,然后就可以利用提供的方法如read()、write()等方法对文件进行操作。FileInputStream类的主要构造方法类的主要构造方法FileInputStream类类构造方法构造方法说明说明FileInputStream(Filefile)根据File类对象创建一个文件字节输入流对象FileInputStream(Str
10、ingname)根据字符串name创建一个文件字节输入流对象,name代表路径和文件名注意:如果File类对象所对应的文件不存在,将抛出FileNotFoundException异常。FileInputStream FileInputStream fis=new fis=new FileInputStreamFileInputStream(c:Hello.java);(c:Hello.java);File File file=new File(c:Hello.java);file=new File(c:Hello.java);FileInputStream FileInputStream fi
11、n=new FileInputStream(file);fin=new FileInputStream(file);TestFileInputStream.javaFileInputStream类类构造方法构造方法说明说明FileOutputStream(Filefile)创建一个向file中写入数据的文件输出流FileOutputStream(Filefile,booleanappend)创建一个是否向file尾部追加数据的文件输出流FileOutputStream(Stringname)创建一个向name中写入数据的输出文件流FileOutputStream(Stringname,bool
12、eanappend)创建一个是否向name尾部追加数据的输出文件流FileOutputStream类的构造方法类的构造方法FileOutputStream类类注意:如果File对象所对应的文件不存在,则会创建一个指定的文件。FileOutputStream fos1=new FileOutputStream(f1.txt);FileOutputStream fos2=new FileOutputStream(f2.txt,true);FileOutputStream fos3=new FileOutputStream(new File(f3.txt);FileOutputStream fos4
13、=new FileOutputStream(new File(f4.txt),false);TestFileOutPutStream.javaFileOutputStream类类java.io包中提供了FilterInputStream类和FilterOutputStream类分别对其他输入/输出流进行特殊处理,它们在读/写数据的同时可以对数据进行特殊处理。FilterInputStream类和FilterOutputStream类都是抽象类,因此它们均不能实例化对象。FilterInputStream类有3个子类,它们分别是BufferedInputStream、DataInputStrea
14、m和PushbackInputStream;FilterOutputStream类也有3个子类,分别是BufferedOutputStream、DataOutputStream和PrintStream。过滤流(处理流)过滤流(处理流)BufferedInputStream和BufferedOutputStream类称为缓冲字节流,它引入了针对内存缓冲区的操作,从而提高了读写数据的效率。注意:过滤流不直接与底层的数据“打交道”,必须先 指定节点流对象处理底层的数据,然后把节点流对象作为过滤流对象的实参使用。BufferedInputStream和和BufferedOutputStream构造方法
15、构造方法说明说明BufferedInputStream(InputStreamin)创建一个缓冲输入流并连结节点输入流in,缓冲区默认大小为32个字节BufferedInputStream(InputStreamin,intsize)创建一个缓冲输入流并连结节点输入流in,缓冲区默认大小为size个字节BufferedOutputStream(OutputStreamout)创建一个新的缓冲输出流,将数据写入到节点输出流out,缓冲区默认大小为32个字节BufferedOutputStream(OutputStreamout,intsize)创建一个新的缓冲输出流,将缓冲区大小为size字节的
16、数据写入到节点输出流outBufferedInputStreamDemo.javaBufferedInputStream和和BufferedOutputStream注意:注意:1、BufferedInputStreamBufferedInputStream的数据成员buf是一个字节数组,默认为2048个字节,当读取数据来源时,BufferedInputStream会尽量将buf填满。当使用read()方法时,实际上是先读取buf中的数据,而不是直接对数据来源做读取。当buf不足是,BufferedInputStream才会在实现给定的InputStream对象的read方法。2、Buffere
17、dOutputStreamBufferedOutputStream的成员buf也是一个字节数组,默认为512字节,当使用write()方法写入数据时,实际上会先将数据写至buf中,当buf已满时才会实现给定的OutputStream对象的writer方法,将buf数据写至目的地。java.io包中提供了ByteArrayInputStream类和ByteArrayOutputStream类,将内存中 byte类型的数组当作流输入来源、输出目的地。ByteArrayInputStream可以从指定的字节数组中读取数据;ByteArrayOutputStream中提供了缓冲区可以存放数据(缓冲区大
18、小可以在构造方法中设定,缺省为32字节),可以用write()方法向其中写入数据,然后用toByteArray()方法将缓冲区中的有效字节写到字节数组中去。构造方法构造方法说明说明ByteArrayInputStream(bytebuf)创建一个内存输入流,使用buf作为其缓冲区数组ByteArrayInputStream(bytebuf,intoffset,intlength)创建一个内存输入流,使用buf作为其缓冲区数组ByteArrayOutputStream()创建一个内存输出流ByteArrayOutputStream(intsize)创建一个缓冲区容量为size字节的内存输出流By
19、teArrayInputStream和和ByteArrayOutputStream java.io 包中含有两个接口DataInput 和DataOutput,这两个接口设计了一种较为高级的 数据输入输出方式:除了可处理字节和字节数组外,还可以处理int、float、boolean 等基本 数据类型,这些数据在文件中的表示方式和它们在内存中的一样,无须转换,它们相应地提 供了很多处理基本数据类型的方法,如:DataInput 提供了read()、readInt()、readByte(),,DataOutput 提供了write()、writeChar()、writeFloat(),。DataI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4讲JAVA IO流 JAVA IO
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内