《Java与面向对象程序》-8.2文件操作类_第1页
《Java与面向对象程序》-8.2文件操作类_第2页
《Java与面向对象程序》-8.2文件操作类_第3页
《Java与面向对象程序》-8.2文件操作类_第4页
《Java与面向对象程序》-8.2文件操作类_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习目标熟悉文件操作能使用File类访问文件系统主要内容

File类RandomAccessFile类File类

File类是java.io包中唯一代表磁盘文件和目录的类。每个File类对象表示一个磁盘文件或目录,其对象属性包含了文件或目录的相关信息,如名称、长度和文件个数等,调用File类的方法可以完成对文件或目录的管理操作(如常见和删除等)。用于创建File对象的构造方法有3个:

File(Stringfilename);File(StringdirectoryPath,Stringfilename);File(Filef,Stringfilename);File类用File类创建一个目录和文件可以使用各种方法,如:分别创建目录和文件。Filedir=newFile(“D:/java/tt/”);Filefile=newFile(“D:/java/tt/file1.txt”);先创建一个目录,然后将描述目录的对象作为参数传递给File对象的构造方法。Filedir=newFile(“D:/java/tt/”);Filefile=newFile(dir,“file1.txt”);将文件路径和文件名分开作为两个参数提供给构造方法。Filefile=newFile(“D:/java/tt/”,“file1.txt”);注意:在程序中最好不要使用绝对路径,这样肯能会造成你的程序无法在其他机器上正常运行。File类返回类型方法名功能描述StringgetName()获取文件的名字booleandelete()删除File对象对应的文件或目录,若成功删除则返回true,否则返回falsebooleancanRead()判断文件是否可读。可读返回true,否则返回falsebooleancanWrite()判断文件是否可写。可写返回true,否则返回falsebooleanexits()判断文件是否存在。如果存在返回true,否则返回falselonglength()获取文件的长度(单位时字节)StringgetPath()返回File对象对应的路径StringgetAbsolutePath()获取文件的绝对路径StringgetParent()获取文件的父目录booleanisFile()判断文件是否是文件,如果是返回true,否则返回falsebooleanisDirectory()判断文件是否是目录,如果是返回true,否则返回falsebooleanisAbsolute()判断File对象对应的文件或目录是否是绝对路径booleanisHidden()判断文件是否是隐藏文件,如果是返回true,否则返回falselonglastModified()获取文件最后修改的时间(时间是从1970年午夜至文件最后修改的毫秒数)booleanequals(Objectobj)文件的绝对路径与obj的绝对路径是否相等,相等返回true,否则返回falseStringtoString()返回抽象路径名的路径名字符串String[]list()列出指定目录的全部内容,只列出名称File[]listFiles()返回一个包含了File对象所有子文件和子目录的File数组

File类常用方法File类【例8-2】使用File类操作目录——创建、删除、遍历目录。

程序Ex8_2.java

在遍历一个目录时,有时只需要获取目录下某个类型的文件。针对这种需求,File类提供了一个重载的list(FilenameFilterfilter)方法,该方法接收一个FilenameFilter类型的参数。FilenameFilter是一个接口,叫文件过滤器,包含的抽象方法accept(Filedir,Stringname)表示测试指定文件是否应该包含在某一文件列表中。在调用list()方法时,需要实现文件过滤器,在accept()方法中做出判断,从而获得指定类型的文件。File类修改【例8-2】程序,遍历指定目录下所有扩展名为.txt文件的代码如下。

……(前略,【例8-2中第1~18行】)

System.out.println(dir.getAbsolutePath()+"目录下的所有.txt文件有:"); FilenameFilterfilter=newFilenameFilter(){//创建过滤器对象 publicbooleanaccept(Filedir,Stringname){//实现accept()方法 Filefs=newFile(dir,name); //如果文件名以.txt结尾返回true,否则返回false if(fs.isFile()&&name.endsWith(".txt")){ returntrue; }else{ returnfalse; } } }; File[]files=dir.listFiles(filter);//获得过滤后的所有文件 ……(后略,【接例8-2中第21行】)File类请注意,运行结果的最后一行显示目录删除不成功,原因是加入过滤器后获取到的files数组中只包含dir目录下的“.txt”文件而不是所有,dir中被删除的文件也只是这些,即执行删除dir时,目录非空,删除失败。RandomAccessFile类所谓随机读写,是指读写一个字节后,不仅能读写其后继的字节,还可以读写文件中任意位置的字节,就好像文件中有一个随意移动的指针一样。RandomAccessFile类既可以实现文件的读操作,也可以实现文件的写操作。创建RandomAccessFile对象有两个构造方法:这两个构造方法都要接受两个参数:第一个参数用来指定要操作的文件;第二个参数mode用来指定打开文件的方式。参数mode有四个可能的取值,最常用的有两个,分别是“r”和“rw”,其中“r”表示以只读的方式打开文件;“rw”表示以“读写”的方式打开文件,如果文件不存在,则会自动创建文件。RandomAccessFile(Filefile,Stringmode);RandomAccessFile(Stringname,Stringmode);RandomAccessFile类【例8-3】用RandomAccessFile类读写文件

Ex8_3.java运行结果如图所示:【案例8-1】文件检索系统

案例描述编写一个文件检索系统程序,实现对文件的检索。可以按文件名中包含的关键字检索,或按文件后缀名检索。程序运行初始界面如下图:输入“1”后,输入要检索文件的位置,点“确定”,输入检索关键字,确定,则列出所有包含“关键字”的文件名【案例8-1】文件检索系统设计目标学会分析“文件检索系统”程序的实现思路;认识javax.swing.JOptionPane,实现输入对话框;掌握File类,熟悉文件遍历的实现方法;熟悉文件名过滤器FilenameFilter在程序中的用法;能够根据思路独立完成文件检索系统程序源代码的编写。【案例8-1】文件检索系统实现思路

程序代码分析案例可知,需要定义两个检索方法,分别实现按关键字检索和按文件名后缀检索;此外,还需要定义一个退出系统的方法,这三个分支选择可以在主方法中用switch结构实现检索方法的实现关键是文件名过滤器Fil

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论