JAVA第八章流与文件课件

上传人:1ta3****9ta1 文档编号:243017974 上传时间:2024-09-13 格式:PPT 页数:34 大小:785.50KB
返回 下载 相关 举报
JAVA第八章流与文件课件_第1页
第1页 / 共34页
JAVA第八章流与文件课件_第2页
第2页 / 共34页
JAVA第八章流与文件课件_第3页
第3页 / 共34页
点击查看更多>>
资源描述
,*,计算机科学与技术学院,第八章 流与文件,Stream and File,计算机科学与技术学院,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.InputStream,abstract,int,read(),int,read(byte b),int,read(byte,b,int,off,int,len,),long skip(long n),int,available(),返回不会阻塞的实际可用字节数,void close(),8.1,什么是流,计算机科学与技术学院,void,mark(int,readlimit,),在当前位置作一个标记,void reset(),返回最近的标记处,boolean,markSupported,(),如果该流支持,标记则返回,true,8.1,什么是流,计算机科学与技术学院,API:java.io.OutputStream,(),abstract,int,write(),int,write(byte b),int,write(byte,b,int,off,int,len,),void close(),void flush(),8.1,什么是流,计算机科学与技术学院,8.1,什么是流,8.1.2,System.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(String path),File(String path,String name),File(File dir, String name),计算机科学与技术学院,API:java.io.File,String,getAbsolutePath,(),返回包含绝对,路径名的字符串,String,getCanonicalPath,(),返回包含规,范路径名的字符串,String,getName,(),String,getParent,(),boolean,isDirectory,(),boolean,isFile,(),8.2.1,文件管理,File,类,计算机科学与技术学院,String list(),返回,File,对象下的文件名和子目录名,String,list(FilenameFilter,filter),同上,但只有通过过滤器检查的文件和目录才能被返回,boolean,mkdir,(),URL,toURL,(),把,File,对象转化为一个,URL,例:打印指定路径下的子目录结构,FindDirectories.java,8.2.1,文件管理,File,类,计算机科学与技术学院,8.2.1,文件管理,File,类,计算机科学与技术学院,用于指定路径的代码:,if (,args.length,= 0),args,= new String . ;,try, File,pathName,= new File(args0);,String,fileNames,=,pathName.list,();,复合成绝对路径:,for (,int,i = 0; i ,fileNames.length,; i+),File f = new,File(pathName.getPath,(),fileNamesi,);,8.2.1,文件管理,File,类,计算机科学与技术学院,1.FileInputStream,类,构造方法:,FileInputStream(String,filename),FileInputStream(File,file),例,:,FileInputStream,in1 =new,FileInputStream(,“,c:1000hello.java,”,);,例,: File f=new,File(,“,myfile.dat,”,);,FileInputStream,in2 =new,FileInputStream(f,),用于读写磁盘文件,8.2.2,FileInputStream,和,FileOutputStream,类,计算机科学与技术学院,2.FileOutputStream,类,构造方法:,FileOutputStream(String,filename),FileOutputStream(File,file),例:,String name=,“,c:1000line.txt,”,;,FileOutputStream,out=new,FileOutputStream(name,);,只能读取字节,或字节数组,in1,、,in2,、,out,8.2.2,FileInputStream,和,FileOutputStream,类,计算机科学与技术学院,8.2.3.DataInputStream,和,DataOputStream,类,1.,DataInputStream,构造方法,:,DataInputStream(InputStream,in),常用方法:,close(),readByte,(),readInt,(),readUTF,(),readFloat,(),计算机科学与技术学院,2.DataOutputStream,类,构造方法,:,DataOutputStream(OutputStream,in),常用方法:,close(),writeByte,(),writeInt,(),writeUTF,(),writeFloat,(),8.2.3.DataInputStream,和,DataOputStream,类,计算机科学与技术学院,3.,FileInputStream,类能从文件及其它位置上读取字节,,而,DataIputStream,类能够把字节合成为常用的数据类型。,可以把两种类结合起来从而,构成过滤器,流,例:从一个文件中读取一个数字,FileInputStream,fin=new,FileInputStream(,“,line.txt,”,);,DataInputstream,din=new,DataInputStream(fin,);,int,data1=,din.readInt,();,过滤器,8.2.3.DataInputStream,和,DataOputStream,类,计算机科学与技术学院,8.2.4,BufferedInputStream,和,BufferedInputStream,类,构造方法:,BufferedInputStream(InputStream,in),BufferedInputStream(InputStream,in,int,n),用来创建一输入缓冲流,BufferedOutputStream(OutputStream,out),BufferedOutputStream(OutputStream,out,,,int,n),用来创建一输出缓冲流,用于从一个流中读取字符,但不会每次都导致设备访问,计算机科学与技术学院,例:利用缓冲区从文件中读取数据,DataInputStream,din=,new,DataInputStream,(new,BufferedInputStream,(new,FileInputStream(,“,line.txt,”,);,Void,unread(int,n),回退一个字节,8.2.4,BufferedInputStream,和,BufferedInputStream,类,计算机科学与技术学院,构造方法:,PushbackInputStream,(,Inputstream,in),构造具有一个字节预先量缓冲流,PushbackInputStream,(,Inputstream,in,int,size),构造一个指定大小的预先缓冲的流,8.2.5,PushbackInputStream,类,用于跟踪中间流的类,计算机科学与技术学院,8.2.6,RandomAccessFile,类,通过构造,RandomAccessFile,类,你可以做任何想对文件进行的操作。,构造方法:,RandomAccessFile(String,filename,String mode),RandomAccessFile(Filefile,String,mode),常用方法:,read write,系列,public void seek(long,pos)throw,IOException,public,int,SkipBytes(int,n)throw,IOException,计算机科学与技术学院,8.2.7,管道类,PipedInputStream,类创建是一个输入管道,PipedOutputStream,创建是一个输出管道,输出管道与输入管道连接就形成了一个传输数据的通道,使用这样的管道,用户可以在不同的线程间实现数据共享,计算机科学与技术学院,管道模型如图:,线,程,1,管道输出,连,接,管道输入,管道输出,线,程,2,线,程,3,管道输入,连,接,8.2.7,管道类,计算机科学与技术学院,构造输入输出流:,PipedInputStream,in =,new,PipedInputStream,();,PipedOutputStream,out=,new,PipedOutputStream,(),1.,将输入与输出连接,connect(PipedOutputStream,c),例:,in.connect(out),2.,将输出与输入连接,connect(PipedInputStream,c),out.connect(in),8.2.7,管道类,计算机科学与技术学院,8.2.7,管道类,例:一个简单的例子,PipeTest.java,Producer,Filter,Consumer,0.01,计算机科学与技术学院,8.3 Readers,的,Writers,类,Readers,的,Writers,类的出现并不是要取代,InputStream,和,OutputStream,,,而是为了更好地国际化目的,为了更好的搭配使用两种类,,Java,提供了,“,桥接类,”,:,InputStreamReader,和,OutputStreamWriter,,,用于将,InputStream,和,OutputStream,转化为,Reader,和,Writer,这是两个用于,Unicode,并基于字符的,I/O,流,计算机科学与技术学院,两个继承体系之间类的对应关系,InputStream,OutputStream,FileInputStream,FileOutStyream,PipesInputStream,PipesOutputStream,Reader,转换器:,InputStreamReader,Writer,转换器:,OutputStreamWriter,FileReader,FileWriter,PipedReader,PipedWriter,8.3 Readers,的,Writers,类,计算机科学与技术学院,Filters:,两个继承体系之间类的对应关系,FilterInputStream,FilterOutputStream,BufferedInputStream,BufferedOutputStream,DataInputStream,PushBackInputStream,PrintStream,FilterReader,FilterWriter,BufferedReader,BufferedWriter,PushBackReader,PrintWriter,8.3 Readers,的,Writers,类,计算机科学与技术学院,未变化的类,DataOutputStream,File,RandomAccessFile,SequenceInputStream,8.3 Readers,的,Writers,类,计算机科学与技术学院,小结,I/O,类库是,Java,基本类库中非常重要的组成,本节主要介绍了,:,1.,流的概念,2.,常见的,I/O,流类及主要方法,3.,标准,I/O,4.File,类及属性和方法,5.,用,I/O,流实现文件读写,计算机科学与技术学院,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!