JAVA第八章流与文件.ppt

上传人:b****1 文档编号:1396799 上传时间:2022-10-22 格式:PPT 页数:34 大小:963.50KB
下载 相关 举报
JAVA第八章流与文件.ppt_第1页
第1页 / 共34页
JAVA第八章流与文件.ppt_第2页
第2页 / 共34页
JAVA第八章流与文件.ppt_第3页
第3页 / 共34页
JAVA第八章流与文件.ppt_第4页
第4页 / 共34页
JAVA第八章流与文件.ppt_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

JAVA第八章流与文件.ppt

《JAVA第八章流与文件.ppt》由会员分享,可在线阅读,更多相关《JAVA第八章流与文件.ppt(34页珍藏版)》请在冰豆网上搜索。

JAVA第八章流与文件.ppt

第八章流与文件,StreamandFile,计算机科学与技术学院,1.了解流、输入输出的概念2.掌握常见的输入输出流类的使用3.熟悉System类,掌握标准输入输出和重新定向输入输出技术4.掌握用I/O流实现文件读/写,压缩文件读/写的方法,本节学习要点,计算机科学与技术学院,目的地:

标准输出设备.如屏幕磁盘文件网络连接等,8.1什么是流,8.1.1基本概念,输入:

指的是如何从数据源中获得字节序列,数据源:

标准输入设备.如:

键盘磁盘文件网络连接等,输出:

指的是如何将字节序列发送到能接收数据的目的地,计算机科学与技术学院,在Java中,输入流指的是能够读取一个字节序列的对象;,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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1