编程语言
首页 > 编程语言> > Java操作文件属性

Java操作文件属性

作者:互联网

狭义的文件分成两大类

  1. 普通文件
  2. 目录文件(文件夹)

文件的元信息,路径的操作
Java中通过java.io.File类来对文件(包括目录)进行抽象的描述。有File对象,并不代表真实存在该文件。
File类中常见的属性

修饰符及类型属性说明
static StringpathSeparator依赖与系统的路径分隔符,String类型的表示
static charpathSeparator依赖与系统的路径分割符,char来兴的表示

File类中常见的构造方法

签名说明
File(File parent,String child)根据父目录+孩子文件路径,创建一个新的File实例
File(String pathname)根据文件路径创建一个新的File实例,路径可以是绝对路径或者相对路径
File(String parent,String child)根据父目录+孩子文件路径,创建一个新的File实例,父目录用路径表示

File类中常见的方法

修饰符及返回值类型方法名说明
StringgetParent()返回File对象的父目录文件路径
StringgetName()返回File对象的纯文件名称
StringgetPath()返回File对象的文件路径
StringgetAbsolutePath()返回File对象的绝对路径
StringgetCanonicalPath()返回File对象的修饰过的绝对路径
booleanexists()判断File对象描述的文件是否真实存在
booleanisDirectory()判断File对象代表的文件是否是一个目录
booleanisFile()判断File对象代表的文件是否是一个普通文件
booleancreateNewFile()根据File对象,自动创建一个空文件。成功创建后返回true
booleandelete()根据File对象,删除该文件。成功删除后返回true
voiddeleteOnExit()根据File对象,标注文件将被删除,删除动作会到JVM运行结束时才会进行
String[]list()返回File对象代表的目录下的所有文件名
File[]listFiles()返回File对象代表的目录下的所有文件,以File对象表示
booleanmkdir()创建File对象代表的目录
booleanmkdirs()创建File对象代表的目录,如果必要,会创建中间目录
booleanrenameTo(File dest)进行文件改名,也可以视为我们平时的剪切,粘贴操作
booleancanRead()判断用户是否对文件有可读权限
booleancanWrite()判断用户是否对文件有可写权限

get系列方法的特点和差异

public class TestDemo1 {
    public static void main(String[] args) throws IOException {
        //注意,有 File 对象,并不代表真实存在该文件
        File file = new File("./test.txt");
        System.out.println(file.getParent());
        System.out.println(file.getName());
        System.out.println(file.getPath());
        System.out.println(file.getAbsoluteFile());
        System.out.println(file.getAbsolutePath());
        System.out.println(file.getCanonicalFile());
        System.out.println(file.getCanonicalPath());
    }
}
/**
.
test.txt
.\test.txt
C:\JAVA_code\java100_1015\.\test.txt
C:\JAVA_code\java100_1015\.\test.txt
C:\JAVA_code\java100_1015\test.txt
C:\JAVA_code\java100_1015\test.txt
*/

普通文件的创建、删除

public class TestDemo2 {
    public static void main(String[] args) throws IOException {
        //包内相对路径的写法
        File file = new File("src/IODemo1/hello-world.txt");
        System.out.println(file.exists());
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
        System.out.println(file.createNewFile());
        System.out.println(file.exists());
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
        System.out.println(file.createNewFile());
    }
}
/**
false
false
false
true
true
false
true
false
*/

普通文件的删除

public class TestDemo3 {
    public static void main(String[] args) throws IOException {
        File file = new File("Test3.txt");
        System.out.println(file.exists());
        System.out.println(file.createNewFile());
        System.out.println(file.exists());
        System.out.println(file.delete());
        System.out.println(file.exists());
    }
}
/**
true
false
true
true
false
*/

程序退出时文件删除(一般用于临时性文件)

public class TestDemo4 {
    public static void main(String[] args) throws IOException, InterruptedException {
        File file = new File("test4.txt");
        System.out.println(file.createNewFile());
        Thread.sleep(3000);
        file.deleteOnExit();
    }
}

通过list遍历当前目录下的所有文件【使用递归】

public class TeacherDemo6 {
    /*
    *   List<String>是存放String类型的对象  String[]数组里面是存放String型的值
    *   String[]是数组,定长,不可变
    *   List<String> 是泛型 ,非定长,可变
    * */
    public static List<String> result = new ArrayList<>();

    public static void getAllFiles(String basePath){
        File file = new File(basePath);
        if(file.isFile()){
            result.add(basePath);
        }else if(file.isDirectory()){
            String[] files = file.list();
            for (String f:files) {
                getAllFiles(basePath+"/"+f);
            }
        }else{
            //当前文件既不是普通文件,也不是目录。例如scoket文件,管道文件,设备块文件
        }
    }
    public static void main(String[] args) {
        getAllFiles(".");
        //System.out.println(result);
        for (String s: result) {
            System.out.println(s);
        }
    }
}

创建目录(mkdir())

public class TestDemo6 {
    public static void main(String[] args) {
        File file = new File("Test6");
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
        System.out.println(file.mkdir());
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
    }
}
/**
false
false
true
true
false
*/

创建多级目录(mkdirs())

public class TestDemo6 {
    public static void main(String[] args) {
        File file = new File("Test6\\test6");
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
        System.out.println(file.mkdirs());
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
    }
}

修改文件名,移动文件(renameTo)

public class TestDemo7 {
    public static void main(String[] args) {
        File file = new File("hello.txt");
        File file2 = new File("./Test6/test6/hello.txt");
        //移动文件
        file.renameTo(file2);
    }
}
public class TestDemo7 {
    public static void main(String[] args) {
        File file = new File("./Test6/test6/hello.txt");
        File file2 = new File("./Test6/test6/helloworld.txt");
        //重命名
        file.renameTo(file2);
    }
}

标签:Java,File,文件属性,System,String,file,println,操作,out
来源: https://blog.csdn.net/qq_39537400/article/details/121763849