1.File类的基本概念
File类:表示文件和目录路径名的抽象表示形式。
File类可以实现文件的创建、删除、重命名、得到路径、创建时间等等,是唯一与文件本身有关的操作类。
File类的定义:
public class File
extends Object
implements Serizlizable,Comparable<File>
2.File类的操作 方法
public static final String separator | 表示路径分隔符“\” |
public static final String pathSeparator | 表示路径分隔,表示“;” |
public File(String pathname) | 构造File类实例,要传入路径 |
public boolean createNewFile() throws IOEException | 创建新文件 |
public boolean delete( ) | 删除文件 |
public String getParent( ) | 得到文件的上一级路径 |
public boolean isDirectory( ) | 判断给定的路径是否是文件夹 |
public boolean isFile() | 判断给定的路径是否是文件 |
public String[ ] list( ) | 列出文件夹中的文件 |
public File[ ] listFiles() | 列出文件夹中的所有文件 |
public boolean mkdir( ) | 创建新的文件夹 |
public boolean renameTo(File dest) | 为文件重命名 |
public long length( ) | 返回文件大小 |
String getPathI( ) | 路径名字符串 |
package com.vince.file;
import java.io.File;
import java.io.IOException;
/**
* File类的使用
* @author lamp
*
*/
public class FileDemo {
public static void main(String[] args) {
//File.separator 表示分隔符
//D:\\lamp
File file1 = new File("D:"+File.separator+"lamp"+File.separator+"lamp.txt");
//路径分隔符
// String s = File.pathSeparator;
//文件是否存在
if(!file1.exists()){
try {
//创建一个新文件
boolean b = file1.createNewFile();
System.out.println("创建文件:"+b);
} catch (IOException e) {
e.printStackTrace();
}
}
//删除文件
//System.out.println(file1.delete());
//得到文件的上一级路径
System.out.println(file1.getParent());
//判断一个路径是否是文件夹
System.out.println("是否是目录:"+file1.isDirectory());
判断一个路径是否是文件
System.out.println("是否是文件:"+file1.isFile());
File file2 = new File("d:\\vince");
//列出文件夹中的所有文件名
String[] fileName = file2.list();
for (String s : fileName) {
System.out.println(s);
}
//列出文件夹中的所有文件,以File数组返回
File[] files = file2.listFiles();
for (File file : files) {
System.out.println(file.getPath()+"---"+file.length());
}
//创建文件夹
File file3 = new File("d:\\xiaobai\\baibai");
file3.mkdirs();
//重命名
File file4 = new File("d:\\xiaobai\\xiaobaibai");
file3.renameTo(file4);
}
}
3.作业
任意给定一个目录,从该目录中(包括子目录)查找出所有后缀txt的文件 ,并打印出来。
package com.vince.homework;
import java.io.File;
/**
* 文件搜索
* @author lamp
*
*/
public class HomeWork1 {
//使用递归算法实现文件查找功能
public static void findFile(File file,String extName){
if(file==null){
return;
}
//如果是目录,那么获取该目录下的所有文件的File对象
if(file.isDirectory()){
File[] fs = file.listFiles();
if(fs!=null){
for (File f : fs) {
findFile(f,extName);
}
}
}else{
//当File是一个文件时,那么我们就进行判断扩展名是否为指定的扩展名
String path = file.getPath().toLowerCase();
if(path.endsWith(extName)){
System.out.println(file.getPath());
}
}
}
public static void main(String[] args) {
File file = new File("d:\\vince");
String extName = ".jpg";
findFile(file,extName);
}
}