File类
File类用于操作目录和文件(创建、删除、移动、判断),代表文件或者目录(文件夹)的类
绝对路径:从盘符开始直到最后的文件或者目录的路径
相对路径:相对于某一个目录的路径
separatorChar:目录分割符 在windows系统中就是\ 如果在Unix中 就是 /
pathSeparatorChar:路径分割符 在windows中就是; 如果是Unix 就是 :
File(String pathname)—代表了一个File对象;如果文件不存在,不会创建。在创建file对象的时候,并不会去计算机中检查文件是否存在,只是把传入的路径标志为一个file对象
重要方法
1>createNewFile();
创建文件。只有当文件不存在的时候才会创建。此方法需要有一个boolean标记,创建成功返回一个true,创建失败返回一个file。在创建文件的时候,要求存放文件的路径要真实存在,如果不存在则报错,不会创建父目录。只能用于创建文件,不能用于创建目录。
2>mkdir();
创建目录。只能创建目录,不能创建文件。可以创建多层目录。
3>删除
delete()—用于删除文件或者目录。—从计算机中真正移除,无法撤销。—如果删除的是目录且该目录下存在子目录或者子文件,此时无法删除
4>判断
1>canExecute();
判断是否是可执行文件。
2>canRead();
判断是否可读文件。
3>canWrite();
判断文件是否可写。
4>exists();
判断路径是否真实存在。
5>isAbsoute();
判断是否是绝对路径。
6>isDirectory();
判断是否是一个目录。
7>isFile();
判断是否是一个文件。
8>isHidden();
判断是否是隐藏文件。
5>获取
1>getAbsoluteFile();
获取File对象的绝对路径。
2>getAbsolutePath();
获取传入的File对象的路径。
3>listFiles();
获取所有的子目录和子文件组成的File数组。
File[] fl = file.listFiles();
4>listFiles(new Filefileter);
获取所有子目录。参数不可变。
5>listFiles(new FilenameFilter);
获取所有文件目录的名字。参数不可变。
6>lastModified();
获取文件最后一次修改时间。返回值表示是修改时间到1970-01-01 00:00:00的毫秒值。
7>getName();
获取文件的名字。
8>getParent();
获取父目录
6>设置
1>setLastModified(long l);
设置文件最后一次修改时间。参数也是long类型的毫秒值。
2>setExecutable(boolean b);
设置此文件是否可执行文件。
3>setReadable(boolean readable);
设置文件是否为可读文件。
4>setReadable(boolean readable,boolean ownerOnly);
设置用户对文件的可读权限。
5>setReadOnly();
设置文件是否为只读文件。
6>setWritable(boolean writable);
设置文件是否为可写文件。
7>setWritable(boolean writable,boolean ownerOnly);
设置用户对文件的可写权限。
8>renameTo(new File());
重命名。如果路径没有发生改变,则表示重命名此文件;如果路径发生来改变,则表示的是剪切此文件。
public class FileDemo {
public static void main(String[] args) throws IOException {
// 创建File对象
// 只是将路径和对象进行关联
// 并没有创建任何内容
File file = new File("D:\\Javase");
// 创建文件
// file.createNewFile();
// 创建目录
// 这个方法可以一次性创建多级目录(aaa\\bb\\cc)
// file.mkdirs();
// 删除目录时,如果目录中有内容,那么删除不成功
// 删除目录或者文件,都是永久删除
// System.out.println(file.delete());
// System.out.println(file);
// 判断是否是一个目录
// System.out.println(file.isDirectory());
// 判断是否是一个文件
// System.out.println(file.isFile());
// 获取目录下所有的目录和文件
File[] files = file.listFiles();
for (File f : files) {
System.out.println(f.getName());
}
}
}
public class FilePractice {
static int javaCount = 0;
static int classCount = 0;
public static void main(String[] args) {
// 统计java工作空间中.java和.class文件的个数
File file = new File("D:\\workspace");
count(file);
System.out.println("java文件数" + javaCount);
System.out.println("class文件数" + classCount);
}
public static void count(File file){
if (file.isDirectory()){
// 获取目录中所有的子目录或者子文件
File[] files = file.listFiles();
for (File f : files) {
count(f);
}
}else if(file.getName().endsWith(".java")){
javaCount++;
}else if(file.getName().endsWith(".class")){
classCount++;
}
}
public class FilePractice01 {
public static void main(String[] args) {
// 练习:删除目录中所有的目录和文件
// 1.创建File对象
File file = new File("D:\\beishanzhe");
del(file);
}
public static void del(File file){
if (file.isDirectory()){// 判断file到底是目录还是文件
// 获取目录下的所有目录或文件
File[] files = file.listFiles();
for (File f : files) {
del(f);
}
}
file.delete();
}
}
public class FileDemo01 {
public static void main(String[] args) throws IOException {
File file = new File("D:\\a.txt");
file.createNewFile();
// 判断文件是否可以写东西
// System.out.println(file.canWrite());
// // 判断文件是否存在
// System.out.println(file.exists());
// 获取绝对路径
// System.out.println(file.getAbsolutePath());
// 获取剩余空间
// System.out.println(file.getFreeSpace());
// // 获取总空间
// System.out.println(file.getTotalSpace());
// // 获取可用空间
// System.out.println(file.getUsableSpace());
// D:\\cn\\aa.txt
// 获取文件名称
System.out.println(file.getName());
// 获取文件所在的目录
System.out.println(file.getParent());
// 获取修改时间
// System.out.println(file.lastModified());
// 设置修改时间
System.out.println(file.setLastModified(2324L));
// 获取目录中所有名称带数字的文件或者目录
// File[] files = file.listFiles(new FileFilter() {
//
// //pathname 文件
// @Override
// public boolean accept(File pathname) {
// // TODO Auto-generated method stub
// return pathname.getName().matches(".*\\d.*");
// }
// });
// 获取目录中所有.chw结尾的文件或目录
// File[] files = file.listFiles(new FilenameFilter() {
//
// @Override // dir 文件 name 文件名
// // 如果返回值是true 那么就将文件返回到File[]数组中
// // 如果是false 那么直接舍弃
// public boolean accept(File dir, String name) {
// // TODO Auto-generated method stub
// return name.endsWith(".chw");
// }
// });
//
// for (File f : files) {
// System.out.println(f);
// }
// 如果在同目录中,那么就是重命名
// 如果目录不相同,那么就是移动文件并重命名
boolean b = file.renameTo(new File("D:\\cn\\b23.txt"));
System.out.println(b);
}
}
2096

被折叠的 条评论
为什么被折叠?



