欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java中的IO:File类

程序员文章站 2022-05-18 22:57:10
...

目录

1.File类的作用
2.File对象基本使用
3.实现文件遍历
4.实现文件"复制"

 
1.File类的作用

1)用来将文件或者文件夹封装成对象
2)方便对文件与文件夹的属性信息进行操作
3)File对象可以作为参数传递给流的构造函数
4)File对象是不可变的,一旦创建,File对象表示的抽象路径名将永不改变

 

2.File对象基本使用
2.1构造

1)路径:绝对路径名是完整的路径名,不需要任何其他信息就可以定位它所表示的文件;相对路径名必须使用取自其他路径名的信息进行解释.
2)分隔符:默认名称分隔符由系统属性file.separator定义,可通过此类的公共静态字段separator和separatorChar使其可用.

File(String pathname) 将给定路径名字符串转换为抽象路径名来创建一个新File对象
File(File parent, String child) 根据parent抽象路径名和child路径名字符串创建一个新File对象
File(String parent, String child) 根据parent路径名字符串和child路径名字符串创建一个新File对象
File(URI uri) 通过将给定的file:URI转换为一个抽象路径名来创建一个新的File对象
 2.2判断
exists() 当前File对象是否存在
isFile() 当前File对象是否是一个标准文件
isDirectory() 当前File对象是否是一个目录
canRead() 当前File对象是否可被读取
canWrite() 当前File对象是否可被修改
canExecute() 当前File对象是否可被执行
2.3创建
creatNewFile() 当exists()为false时,创建一个File对象
mkDir() 创建指定目录
mkDirs() 创建指定目录,包括所有必需的父目录
2.4删除
delete() 删除当前File对象
deleteOnExit() 在虚拟机终止时,删除此File对象
2.5获取
getName() 返回此File名称
listFiles() 返回一个File数组,表示当前File所表示的目录中所有的文件
getPath() 返回路径名称字符串
getAbsolutePath() 返回绝对路径名称字符串

 

3.实现文件遍历

根据以上方法,我们可以实现对一个文件夹内所有的文件进行遍历:

public class FileDemo {

	public static void show(File file) {
		File[] files = file.listFiles();
		if (files != null && files.length != 0) {
			for (File sub : files) {
				show(sub);
			}
		}
		System.out.println(file.getParent() + " : " + file.getName());
	}

	public static void main(String[] args) {
		File file = new File("c:");
		show(file);
	}
}

执行代码后,会在控制台输出C盘下的所有文件及文件夹名.

 

4.实现文件"复制"

这里的复制指新建文件而并不复制其内部数据,要实现数据复制需要用到后面的流:

public class FileDemo {

	public static void copy(File src, File dir) throws IOException {
		if (!dir.isDirectory()) {
			System.out.println("指定路径不存在");
			return;
		}
		File dest = new File(dir, src.getName());
		if (src.isFile()) {
			dest.createNewFile();
		} else {
			dest.mkdir();
			File[] files = src.listFiles();
			for (File file : files) {
				copy(file, dest);
			}
		}
	}

	public static void main(String[] args) throws IOException {
		File file = new File("c:\\Program Files\\Common Files");
		File dir = new File("c:\\Users\\Administrator\\Desktop");
		copy(file, dir);
	}
}

执行代码后,会将Common Files及内部的所有文件"复制"到桌面.