Java.io.File

File 文件:

  Java.io.File用于标识文件(目录)

  File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问。

  File类常用的API:   exists()判断是否存在    mkdir()创建目录  createNewFile()创建文件   getAbsolutePath()  getParent()获取地址

  File类用于判断文件或目录,以及创建他们

  File.separator 设置分隔符

package com.zhao.file;

import java.io.File;
import java.io.IOException;
import java.nio.file.*;

public class FileDemo{

public static void main(String[] args) {
//了解构造函数的情况 查帮助
java.io.File directory=new java.io.File("D:\\imooc");
//    System.out.println(file.exists());
if (!directory.exists()) {
//创建目录
directory.mkdir();
}
else{
directory.delete();
}

File file=new File("D:"+File.separator+"imooc"+File.separator+"日记.txt");
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else{
file.delete();
}

System.out.println(file);
System.out.println(file.getAbsolutePath());
System.out.println(file.getParentFile());
System.out.println(file.getParent());
System.out.println(file.getPath());
}
}

 

创建FileUitl类,实现目录遍历的功能

/**
* 列出指定目录下(包括其子目录)的所有文件
* @param dir:指定目录
* @throws IOException
*/
public static void listDirectory(File dir) throws IOException{
if (!dir.exists()) {
System.out.println("指定目录不存在,查询失败");
}
else if (!dir.isDirectory()) {
System.out.println("传递的参数有误,不是目录");
}
else{
//返回的是直接子目录(文件)的抽象
File[] files=dir.listFiles();
for(File file:files){
if (file.isDirectory()) {
System.out.println("Directory :"+file.getName()+", "+file.getAbsolutePath()+"---> Parent :"+file.getParent());
//递归
listDirectory(file);
}
else if(file.isFile()){
System.out.println("File :"+file.getName()+", "+file.getAbsolutePath());
}
}
}
}

 

在此方法中,先判断传入的文件dir是否存在,是否是目录。

在dir是目录的情况下,dir.listFiles()方法返回该目录下所有的子文件(目录)的抽象

此时仍需要判断File[] 中的每个File是文件还是目录,是文件还好,是目录的话进行递归操作。

listDirectory(File)循环调用,对所有目录都进行遍历

至此FiltUtil的listDirectory完成,并不复杂,重温了递归操作。

 

posted @ 2016-04-01 14:04  假寐的我  阅读(249)  评论(0编辑  收藏  举报