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及内部的所有文件"复制"到桌面.