77范文网 - 专业文章范例文档资料分享平台

第8章 IO_补充案例(7)

来源:网络收集 时间:2019-03-29 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

博学谷——让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)在线全文阅读。

第8章 IO_补充案例(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/555447.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: