第10章 输入输出处理

上传人:无*** 文档编号:244090763 上传时间:2024-10-02 格式:PPT 页数:38 大小:880KB
返回 下载 相关 举报
第10章 输入输出处理_第1页
第1页 / 共38页
第10章 输入输出处理_第2页
第2页 / 共38页
第10章 输入输出处理_第3页
第3页 / 共38页
点击查看更多>>
资源描述
,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Java,第,10,章 输入输出处理,java.io,包,2,字节流,4,输入输出流简介,3,1,文件,3,3,RandomAccessFile,类,6,字符流,3,5,本章内容提要,10.1,输入输出流简介,流是指在计算机的输入与输出之间运动的数据序列。,根据操作类型的不同,流可以分为输入流和输出流。用来从程序中读取数据的流称为输入流,而用来向程序中写入数据的流称为输出流。,输入输出系统通过流与物理设备相连接,尽管与它们连接的物理设备不尽相同,但所有的流的行为具有同样的方式。,10.2,java.io,包,Java,中数据输入输出的所有功能都是通过,java.io,包中的类和接口完成。,10.3,文件,Java,中的抽象类,File,提供了一些方法来操纵文件和获得文件的信息。,创建文件对象,File,类的对象主要用来获取文件本身的一些信息,不涉及对文件的读写操作。,Java,提供了三种构造方法来创建一个文件对象。,File(String,filename),File(String,directoryPath,String,filename),File(File,f,String filename),10.3,文件,/,根据参数指定的文件路径来创建一个,File,文件对象,File file1=new File(,c:testabc,.txt);,/,根据给定的目录来创建一个,File,对象,指定其目录和文件名,File file2=new File(,c:test,abc,.txt);,/,根据已知的目录文件对象,File,来创建一个新的,File,实体对象,File file3=new File(fiie2,abc.txt);,10.3,文件,以上三种方法只是生成一个文件对象,但没有生成真正的文件,如果要生成实实在在的文件,就需要调用,createNewFile,(),方法。,例,10-1,创建文件对象,10.3,文件,方法,返回值,参数,含义,canRead,boolean,无,检查文件里的数据是否可读,canWrite,boolean,无,检查是否可以写入数据到文件中,createNewFile,boolean,无,产生一个空的文件,delete,boolean,文件名,删除文件,exists,boolean,无,文件是否存在,文件操作,File,类所提供的方法分为两类,一类针对文件的处理,另一类针对目录的处理。,10.3,文件,例,10-2,获取文件的信息,Name:Test10_2.java,Path:C:Test10_2.java,文件存在,文件是可读的,文件是可写的,文件长度为,424 bytes.,10.3,文件,目录操作,1,创建目录,Java,提供了,File,类的重载构造方法来生成一个目录对象。通过该构造方法只是生成一个目录对象,如果要生成实实在在的目录,就需要调用,mkdir,(),方法。,File(String,directoryPath,),10.3,文件,2,列出目录中的文件,如果,File,对象是一个目录,那么该对象可以调用下述方法列出该目录下的文件和子目录:,public String list(),/,用字符串形式返回目录下的全部文件,public File,listFiles,(),/,用,File,对象形式返回目录下的全部文件,10.3,文件,Java,中可以使用,File,类的下述两个方法,列出指定类型的文件:,public String,list(FilenameFilter,obj,),该方法用字符串形式返回目录下的指定类型的所有文件。,public File,listFiles(FilenameFilter,obj,),该方法用,File,对象返回目录下的指定类型所有文件。,10.3,文件,例,10-3,列出,c:java,目录下的所有,java,文件,FilenameFile,是一个接口,该接口有一个方法:,public,boolean,accept(File,dir,String,name),10.3,文件,运行可执行文件,当要执行一个本地机器上的可执行文件时,可以使用,java.lang,包中的,Runtime,类。首先使用,Runtime,类声明一个对象,然后使用该类的静态,getRuntime,(),方法创建这个对象。,例如:,Runtime,ec,;,ec,=,Runtime.getRuntime,();,10.3,文件,10.4,字节流,抽象类,InputStream,是所有字节输入流的基类,抽象类,OutputStream,是所有字节输出流的基类。,因为,InputStream,和,OutputStream,都是抽象类,所以不能直接生成对象,而是要通过覆盖其抽象方法的继承类来创建程序中所需要的对象。,InputStream,类和,OutputStream,类,1,InputStream,类,InputStream,类中定义了与字节输入流操作有关的方法,可以完成从输入流中读入数据的功能,.,2.OutputStream,类,OutputStream,类定义了所有字节输出流中的方法,可以完成写入数据的功能,10.4,字节流,FileInputStream,类和,FileOutputStream,类,1,FileInputStream,类,创建文件输入流,为了创建,FileInputStream,类的对象,用户可以调用它的构造方法。下面列出了两个构造方法:,FileInputStream(String,name),FileInputStream(File,file),10.4,字节流,处理,I/O,异常,当使用文件输入流构造方法建立文件输入流时,可能会出现,IOException,程序必须使用一个,try-catch,块检测并处理这个异常。,为了把一个文件输入流对象与一个文件关联起来,使用类似于下面所示的代码:,try /,创建输入流,FileInputStream,ins=new,FileInputStream(myfile.dat,);,catch(,IOException,e),System.out.println(File,read error:+e);,10.4,字节流,从输入流中读取字节,输入流的作用是提供通往数据的通道,程序可以通过这个通道读取数据。,Java,中的,read(),方法完成了从输入流中读取数据的功能。,read(),方法的格式如下:,int,read();,int,read(byte,b);,int,read(byte,b,int,off,int,len,);,10.4,字节流,关闭流,如果没有关闭那些被打开的流,当另一个程序试图打开这个流时,则可能会出现错误。,关闭输出流的另一个原因是把该流缓冲区的内容冲洗掉。,10.4,字节流,2,FileOutputStream,类,FileOutputStream,提供了文件的写入能力。,FileOutputStream,类有,2,个构造方法:,FileOutputStream(String,name),FileOutputStream(File,file),可以使用,write,方法把字节发送给输出流,如下所示:,public void,write(byte,b),public,void.write(byte,b,int,off,int,len,),10.4,字节流,例,10-6,使用字节流写文件,10.4,字节流,10.5,字符流,1.Reader,和,Writer,对字符文件(如文本文件)的处理是以,Unicode,字符为基本单位的。,Reader,和,Writer,就解决了这个问题,它们可以以字符为单位处理数据流。,Reader,和,Writer,也是两个抽象基类,只是提供了一些用于字符流处理的方法,本身不能用来生成实例。,Java,类库中所有进行字符流处理的类都基于,Reader,和,Writer,这两个类。,方法,含义,int,read(),读取单一字符,long,skip(long,n),跳过数据流中的,n,个字符,void mark(),在流中标记一个位置,void reset(),返回到流中标记的位置,boolean,ready(),测试流是否可读取,boolean,markSupport,(),返回一个,boolean,值,描述流是否支持标记和复位,10.5,字符流,方法,含义,void close(),关闭流,void flush(),将缓冲区的数据输出到流,void,write(char,char),将一个字符数组输出到流,void,write(char,char,int,offset,int,length),将一个数组内从,offset,起的,length,长的字符串输出到流,10.5,字符流,2.FileReader,类和,FileWriter,类,FileReader,和,FileWriter,类分别是,Reader,和,Writer,的子类。,类,FileReader,创建了一个可以读取文件内容的,Reader,类。它最常用的构造方法如下:,public,FileReader(String,filePath,),public,FileReader(File,fileObj,),10.5,字符流,类,FileWriter,创建一个可以写文件的,Writer,类。它最常用的构造方法如下:,public,FileWriter(String,filePath,),public,FileWriter(String,filePath,boolean,append),public,FileWriter(File,fileObj,),10.5,字符流,3.BufferedReader,类和,BufferedWriter,类,BufferedReader,类的构造方法如下:,BufferedReader,(Reader in),例如:,BufferedReader,in=,BufferedReader(new,FileReader(Student.txt,);,BufferedReader,流能够读取文本行,方法是,readLine,(),。,10.5,字符流,可以将,BufferedWriter,流和,FileWriter,流连接在一起,然后使用,BufferedWriter,流将数据以确定长度字符串的形式写到目的地,.,例如:,FileWriter,tofile,=new,FileWriter(hello.txt,);,BufferedWriter,out=,BufferedWriter(tofile,);,10.5,字符流,例,10-7,文件编辑,1.,下面关于,Java,中的类的说法正确的是()。,A.J2SE,B.JRE,C.J2EE,D.J2ME,答案:,ACD,10.5,字符流,10.6,RandomAccessFile,类,Java,语言中还定义了另一个功能更强大、使用更方便的,RandomAccessFile,类,它可以实现对文件的随机读写操作。,RandomAccessFile,类既不是输入流的子类,也不是输出流的子类,但是,RandomAccessFile,类创建的流既可以是输入流也可以是输出流。,1,创建,RandomAccessFile,对象,RandomAccessFile,类有以下两个构造方法:,RandomAccessFile(String,name,String,mode),RandomAccessFile(File,file,String,mode),例如:,File f1=new,File(a.txt,);,RandomAccessFile,myf1=new,RandomAccessFile(f1,rw);,10.6,RandomAccessFile,类,2,对文件
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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