JAVA第八章流与文件PPT文档格式.ppt
- 文档编号:14313160
- 上传时间:2022-10-22
- 格式:PPT
- 页数:34
- 大小:963.50KB
JAVA第八章流与文件PPT文档格式.ppt
《JAVA第八章流与文件PPT文档格式.ppt》由会员分享,可在线阅读,更多相关《JAVA第八章流与文件PPT文档格式.ppt(34页珍藏版)》请在冰豆网上搜索。
,Java的流类可分为两大部分:
File类:
用于文件管理I/O流类:
用于文件读写,8.1什么是流,而输出流指的是能够写一个字节序列的对象,计算机科学与技术学院,File类:
封装了对文件系统进行操作的功能最后修改日期文件,目录操作等,8.1什么是流,I/O流类:
InputStream和OutputStream是用来存取字节的所有类的根类,Reader和Writer是专门用来读写双字节Unicode的类的根类,计算机科学与技术学院,InputStream和OutputStream只提供了读写字节的方法,要想使用各种形式的输入输出方式,必须扩展其子类,Java从四个抽象类上派生了很多具体类,利用这些类,任何你能想象得到的输入输出形式都可以轻松完成,8.1什么是流,计算机科学与技术学院,API:
java.io.InputStreamabstractintread()intread(byteb)intread(byteb,intoff,intlen)longskip(longn)intavailable()返回不会阻塞的实际可用字节数voidclose(),8.1什么是流,计算机科学与技术学院,voidmark(intreadlimit)在当前位置作一个标记voidreset()返回最近的标记处booleanmarkSupported()如果该流支持标记则返回true,8.1什么是流,计算机科学与技术学院,API:
java.io.OutputStream()abstractintwrite()intwrite(byteb)intwrite(byteb,intoff,intlen)voidclose()voidflush(),8.1什么是流,计算机科学与技术学院,8.1什么是流,8.1.2System.in和System.out对象,System.in和System.out是InputStream和OutputStream的一个子类的预定义对象,与之相关的方法:
read()-System.in.read()print(参数)、println(参数)System.out.println(“请输入一个数据:
”);
System.in可以用于从键盘读入System.out可以将数据输出到显示屏,计算机科学与技术学院,InputStream,用于读取字节数据,FileInputStream,用于从文件上读取字节,FilterInputStream,用于构成过滤器流,PipedInputStream,用于线程之间通信,BufferedInputStream,支持缓冲区输入,PushbackInputStream,跟踪中间流,DataInputStream,提供各种方式的输入形式,8.2常用的流类,计算机科学与技术学院,8.2.1文件管理File类,File类的功能十分强大,它可以访问指定文件的所有属性,包括文件名、文件长度、最后修改时间等还可以用来建立目录、删除文件等,构造方法:
File(Stringpath)File(Stringpath,Stringname)File(Filedir,Stringname),计算机科学与技术学院,API:
java.io.File,StringgetAbsolutePath()返回包含绝对路径名的字符串StringgetCanonicalPath()返回包含规范路径名的字符串,StringgetName()StringgetParent()booleanisDirectory()booleanisFile(),8.2.1文件管理File类,计算机科学与技术学院,Stringlist()返回File对象下的文件名和子目录名Stringlist(FilenameFilterfilter)同上,但只有通过过滤器检查的文件和目录才能被返回,booleanmkdir()URLtoURL()把File对象转化为一个URL,例:
打印指定路径下的子目录结构FindDirectories.java,8.2.1文件管理File类,计算机科学与技术学院,8.2.1文件管理File类,计算机科学与技术学院,用于指定路径的代码:
if(args.length=0)args=newString.;
tryFilepathName=newFile(args0);
StringfileNames=pathName.list();
复合成绝对路径:
for(inti=0;
ifileNames.length;
i+)Filef=newFile(pathName.getPath(),fileNamesi);
8.2.1文件管理File类,计算机科学与技术学院,1.FileInputStream类,构造方法:
FileInputStream(Stringfilename)FileInputStream(Filefile),例:
FileInputStreamin1=newFileInputStream(“c:
1000hello.java”);
例:
Filef=newFile(“myfile.dat”);
FileInputStreamin2=newFileInputStream(f),用于读写磁盘文件,8.2.2FileInputStream和FileOutputStream类,计算机科学与技术学院,2.FileOutputStream类,构造方法:
FileOutputStream(Stringfilename)FileOutputStream(Filefile),例:
Stringname=“c:
1000line.txt”;
FileOutputStreamout=newFileOutputStream(name);
只能读取字节或字节数组,in1、in2、out,8.2.2FileInputStream和FileOutputStream类,计算机科学与技术学院,8.2.3.DataInputStream和DataOputStream类,1.DataInputStream,构造方法:
DataInputStream(InputStreamin),常用方法:
close()readByte()readInt()readUTF()readFloat(),计算机科学与技术学院,2.DataOutputStream类,构造方法:
DataOutputStream(OutputStreamin),常用方法:
close()writeByte()writeInt()writeUTF()writeFloat(),8.2.3.DataInputStream和DataOputStream类,计算机科学与技术学院,3.FileInputStream类能从文件及其它位置上读取字节,而DataIputStream类能够把字节合成为常用的数据类型。
可以把两种类结合起来从而构成过滤器流,例:
从一个文件中读取一个数字FileInputStreamfin=newFileInputStream(“line.txt”);
DataInputstreamdin=newDataInputStream(fin);
intdata1=din.readInt();
过滤器,8.2.3.DataInputStream和DataOputStream类,计算机科学与技术学院,8.2.4BufferedInputStream和BufferedInputStream类,构造方法:
BufferedInputStream(InputStreamin)BufferedInputStream(InputStreamin,intn)用来创建一输入缓冲流BufferedOutputStream(OutputStreamout)BufferedOutputStream(OutputStreamout,intn)用来创建一输出缓冲流,用于从一个流中读取字符,但不会每次都导致设备访问,计算机科学与技术学院,例:
利用缓冲区从文件中读取数据DataInputStreamdin=newDataInputStream(newBufferedInputStream(newFileInputStream(“line.txt”);
Voidunread(intn)回退一个字节,8.2.4BufferedInputStream和BufferedInputStream类,计算机科学与技术学院,构造方法:
PushbackInputStream(Inputstreamin)构造具有一个字节预先量缓冲流PushbackInputStream(Inputstreamin,intsize)构造一个指定大小的预先缓冲的流,8.2.5PushbackInputStream类,用于跟踪中间流的类,计算机科学与技术学院,8.2.6RandomAccessFile类,通过构造RandomAccessFile类,你可以做任何想对文件进行的操作。
构造方法:
RandomAccessFile(Stringfilename,Stringmode)RandomAccessFile(Filefile,Stringmode),常用方法:
readwrite系列publicvoidseek(longpos)throwIOExceptionpublicintSkipBytes(intn)throwIOException,计算机科学与技术学院,8.2.7管道类,PipedInputStream类创建是一个输入管道PipedOutputStream创建是一个输出管道,输出管道与输入管道连接就形成了一个传输数据的通道,使用这样的管道,用户可以在不同的线程间实现数据共享,计算机科学与技术学院,管道模型如图:
线程1,管道输出,连接,管道输入,管道输出,线程2,线程3,管道输入,连接,8.2.7管道类,计算机科学与技术学院,构造输入输出流:
PipedInputStreamin=newPipedInputStream();
PipedOutputStreamout=newPipedOutputStream(),1.将输入与输出连接connect(PipedOutputStreamc)例:
in.connect(out),2.将输出与输入连接connect(PipedInputStreamc)out.connect(in),8.2.7管道类,计算机科学与技术学院,8.2.7管道类,例:
一个简单的例子PipeTest.java,ProducerFilterConsumer0.01,计算机科学与技术学院,8.3Readers的Writers类,Readers的Writers类的出现并不是要取代InputStream和OutputStream,而是为了更好地国际化目的,为了更好的搭配使用两种类,Java提供了“桥接类”:
InputStreamReader和OutputStreamWriter,用于将InputStream和OutputStream转化为Read
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 第八 文件