欢迎来到天天文库
浏览记录
ID:33446444
大小:444.51 KB
页数:26页
时间:2018-05-24
《java面向对象程序设计第08章_java-io流》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章输入输出流主讲:赵建邦办公室:信息学院202E-mail:zhaojianbang@nwsuaf.edu.cn2本章主要内容8.1什么是javaIO8.2File类8.3字节流和字符流8.4随机流8.5数组流8.6数据流8.7对象流8.8序列化与对象克隆难点:序列化与对象克隆8.1什么是javaIOIO(Input/Output)是计算机输出/输出的接口。Java的核心库java.io提供了全面的IO接口,包括:文件读写,标准设备输出等等。Java中的IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入8.1.1输入输出流示意图输入
2、流示意图输出流示意图源目的地数据源和目的地可以来自于文件、内存和网络等8.1.2java.io的分类总体来说,IO有四个顶层类:字节流处理单元为1个字节,操作字节和字节数组字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串字节流字符流输入输出InputStreamOutputStreamReaderWriter注意,这四个类为抽象类,不能直接用来创建对象8.2File类1、创建文件File(Stringfilename);File(stringdirectoryPath,Stringfilename);File(Filefp,Stri
3、ngfilename);f.createNewFile();2、删除文件f.delete();例FileTest.java注:delete方法删除由File对象的路径所表示的磁盘文件。它只能删除普通文件,而不能删除目录,即使是空目录也不行。8.2File类3、文件的属性关于File类的其它方法,是不需要死记硬背的,在需要时可以查看JDK文档,就会明白怎么使用。初步接触了File类,我们发现File类不能访问文件的内容,即不能够从文件中读取数据或往文件里写数据,它只能对文件本身的属性进行操作:创建、删除、重命名、判断读写权限、设置和查询最近修改时间等4、运行可执行
4、文件例FileRuntimeTest.java8.2File类5、创建目录publicbooleanmkdir()方法创建目录6、罗列目录中的文件publicString[]list();publicFile[]listFiles();添加文件名过滤器(FilenameFilter)参数publicString[]list(FilenameFilterobj);publicFile[]listFiles(FilenameFilterobj);需要实现FilenameFilter接口的accept方法例12.28.3字节流和字符流8.3字节流和字符流8.3.1文件
5、字节流创建FileInputStream对象以字节为单位读取文件(注意返回值不一样)intread()//返回字节值intread(byteb[])//返回读取的字节个数intread(byteb[],intoff,intlen)FileInputStreaminOne=newFileInputStream("hello.test");Filef=newFile("hello.test");FileInputStreaminTwo=newFileInputStream(f);8.3.1文件字节流FileOutputStream以字节为单位写文件publicvoi
6、dwrite(byteb[])publicvoidwrite(byteb[],intoff,intlen)调用close()方法关闭流由于汉字在内存中占用两个字节,如果使用字节流,读取不当会出现乱码现象例FileStream.java8.3.2文件字符流文件字符流的源和目的地是文件FileReader(Stringfilename)FileReader(Filefilename)FileWriter(Stringfilename)FileWriter(Filefilename)read()和write()方法以字符为基本单位处理数据流write()方法使用缓冲区
7、例FileReaderTest.java8.3.3缓冲流当程序处理的文件按行组织,并且行不是定长时,可采用缓冲式输入输出方式,简化操作缓冲式输入:对于程序的输入请求,系统一次性输入足够多的内容放在内存缓冲区中,供程序以后的输入请求使用,待缓冲区的内容用完,再一次性输入足够多的数据缓冲式输出:对于程序的输出请求,系统先将内容暂存于缓冲区,待缓冲区满或输出结束,才将暂存与缓冲区中的内容输出到流的目的地8.3.3缓冲流/**创建一个FileReader对象.*/FileReaderfr=newFileReader("mytest.txt");/**创建一个Buffer
8、edReader对象.*
此文档下载收益归作者所有