博学谷——让IT教学更简单,让IT学习更有效
}
}
System.out.println(\文件的绝对路径:\// 获取文件的父路径
System.out.println(\文件的父路径:\// 判断是否是一个绝对路径
System.out.println(file.isAbsolute() ? \是绝对路径\不是绝对路径\// 判断是否是一个隐藏文件
System.out.println(file.isHidden() ? \是隐藏文件\不是隐藏文件\// 判断是否是一个文件
System.out.println(file.isFile() ? \是一个文件\不是一个文件\// 判断是否是一个目录
System.out.println(file.isDirectory() ? \是一个目录\不是一个目录\// 判断文件是否可读
System.out.println(file.canRead() ? \文件可读\文件不可读\// 判断文件是否可写
System.out.println(file.canWrite() ? \文件可写\文件不可写\// 得到文件最后修改时间,并将毫秒数转成日期 long time = file.lastModified(); Date d = new Date(time);
String date = DateFormat.getDateTimeInstance(DateFormat.LONG,
DateFormat.LONG).format(d);
System.out.println(\最后修改时间为:\// 得到文件的大小
System.out.println(\文件大小为:\
程序结果如图8-23所示。
图8-23 运行结果
三、案例总结
1、File类有三个常用构造方法,如下表所示: 方法声明 File(String pathname) 功能描述 通过指定的一个字符串类型的文件路径来创建一个新的File对象 31
博学谷——让IT教学更简单,让IT学习更有效
根据指定的一个字符串类型的父路径和一个字符串类型的子路径(包括文件名称)创建一个File对象 根据指定的File类的父路径和字符串类型的子路径(包括文件名称)创建一个File对象 File(String parent,String child) File(File parent,String child) 针对本案例,这三种常用构造方法创建File对象可以都使用,示例代码如下:
// 方式1: File(String pathname) File file = new File(\
// 方式2: File(String parent,String child) File file = new File(\ // 方式3: File(File parent,String child) File parentfile = new File(\
File file = new File(parentfile, \
2、File类中的createNewFile()方法,当文件存在时不会创建,该方法返回值为false,文件不存在时才创建,如果创建成功,该方法返回值为true。
3、在获取文件的最后修改时间操作中,使用到了DateFormat类,将File类中的lastModified()方法返回的毫秒值转换成了日期,更直观。
4、除了上面案例中演示的方法外,File类中还有其它常用的方法,例如重新命名文件。File类非常重要,常用方法也特别多,建议大家在学习File类的过程中多查看API。
案例8-18 递归遍历目录及其子目录下的文件
一、案例描述
1、 考核知识点
编 号:00108021
名 称: 遍历目录下的文件
2、 练习目标
? 掌握File类中的listFiles()方法的使用
? 掌握如何递归遍历一个目录及其子目录下的文件
3、 需求分析
在一个目录下,除了文件,常常还会有子目录,如果想得到所有子目录下的File类型对象,就需要遍历整个目录及其子目录,在File类中提供了listFiles(),该方法返回一个File对象数组,由于元素中可能还有子目录需要遍历,因此需要使用递归。为了让大家熟悉遍历目录下的文件的操作,本案例将使用listFiles()方法和递归方式遍历目录及其子目录下的文件来演示。
4、 设计思路(实现原理)
1) 编写Example18类
2) 在main()方法中使用File(String pathname)构造方法创建File文件对象,给定待遍历的目录的
路径
3) 编写fileDir()方法,并在该方法中使用File类的listFiles()方法获得目录下所有文件的数组,遍
历数组,判断如果是目录,使用递归方式继续遍历,如果是文件则打印输出该文件的绝对路径
4) 在main()方法中调用fileDir()方法,并传入待遍历的File对象
32
博学谷——让IT教学更简单,让IT学习更有效
二、案例实现
import java.io.File; public class Example18 { }
public static void main(String[] args) { }
public static void fileDir(File dir) { }
File[] files = dir.listFiles(); // 获得表示目录下所有文件的数组 for (File file : files) { }
if (file.isDirectory()) { }
System.out.println(file.getAbsolutePath());
// 输出文件的绝对路径
fileDir(file);
// 如果是目录,递归调用fileDir() // 遍历所有的子目录和文件
File file = new File(\fileDir(file);
// 调用fileDir删除方法
// 创建一个代表目录的File对象
程序结果如图8-24所示。
图8-24 运行结果
三、案例总结
1、File类中有一个list()方法,该方法用于遍历某个指定目录下的所有文件的名称,返回值类型是String[]类型,和它不同的是,listFiles()方法返回值类型是File[]类型。list()还有一个重载方法list(FilenameFilter filter),其中FilenameFilter是文件过滤器,在文件过滤器对象的accept()方法中可以对文件进行过滤操作,例如遍历指定扩展名的文件等。
2、在案例中由于每次遍历文件的操作是相同的,因此fileDir()方法中可以使用递归的方式,即自身调用自身的情况。
33
博学谷——让IT教学更简单,让IT学习更有效
案例8-19 使用delete()方法删除目录
一、案例描述
1、 考核知识点
编 号:00108022
名 称: 删除文件及目录
2、 练习目标
? 掌握File类中的delete ()方法的使用 ? 掌握如何删除一个文件及目录
3、 需求分析
在操作文件时,经常需要删除一个目录下的某个文件或者删除整个目录,这时可以使用File类提供的delete()方法。为了让初学者掌握如何删除文件及目录,案例中将使用delete()方法对指定目录进行删除来演示。
4、 设计思路(实现原理)
1) 编写Example19类
2) 在main()方法中使用File(String pathname)构造方法创建File文件对象,指定删除的目录为C
盘下名为“temp”的文件夹
3) 使用File类的exists()方法判断该文件是否存在,如果存在就使用delete()方法对其进行删除操
作
二、案例实现
import java.io.*; class Example19 { }
public static void main(String[] args) { }
File file = new File(\if (file.exists()) { }
System.out.println(\文件删除成功:\System.out.println(\该文件不存在\}else{
程序运行结果如图8-25所示。
图8-25 运行结果
34
博学谷——让IT教学更简单,让IT学习更有效
三、案例总结
1、delete()方法不仅可以可以删除文件,还删除目录,只是删除目录时,该目录必须为一个空目录,否则删除会失败。思考一下,如果要删除一个不为空的目录,Example19类该怎样修改?
示例代码如下:
import java.io.*;
public class Example19 { }
public static void main(String[] args) { }
public static void deleteDir(File dir) { }
if (dir.exists()) { // 判断传入的File对象是否存在 }
File[] files = dir.listFiles(); // 得到File数组 for (File file : files) { // 遍历所有的子目录和文件 }
// 删除完一个目录里的所有文件后,就删除这个目录 dir.delete();
if (file.isDirectory()) { }
deleteDir(file); // 如果是目录,递归调用deleteDir() // 如果是文件,直接删除 file.delete(); } else {
File file = new File(\创建一个代表目录的File对象 deleteDir(file); // 调用deleteDir删除方法
2、在Java中删除目录是从虚拟机直接删除不走回收站,文件将无法恢复,因此在进行删除操作的时候需要格外小心。
案例8-20 RandomAccessFile随机读写文件
一、案例描述
1、 考核知识点
编 号:00108023
名 称: RandomAccessFile
2、 练习目标
? 掌握如何使用RandomAccessFile随机读写文件
3、 需求分析
文件存取通常是循序的,每在文件中存取一次,文件的读取位置就会相对于目前的位置前进
35
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库第8章 IO_补充案例(7)在线全文阅读。
相关推荐: