JavaEE——JAVA文件操作

100 阅读2分钟

JAVA文件操作

[toc]

​ Java中通过java.io.file类来对文件(目录)进行抽象的描述。注意,有File对象时,不代表真实存在该文件

1.属性

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

windows系统是:反斜杠\

Linux系统是:斜杠/

2.构造方法

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

3.方法

修饰符及返回方法说明
StringgetParent()放回File的父目录文件路径
StringgetName()纯文件目录
StringgetPath()文件路径
StringgetAbsolutePath()绝对路径
StringgetCanonicalPath()修饰过后的绝对路径
public class Constructor {
    public static void main(String[] args) throws IOException {
        System.out.println("==================使用绝对路径===================");
        File file=new File("d:/JAVA/temp/test/hello.txt");
        System.out.println(file.getParent());//父目录文件路径
        System.out.println(file.getName());//纯文件名称
        System.out.println(file.getPath());//文件路径
        System.out.println(file.getAbsolutePath());//绝对路径
        System.out.println(file.getCanonicalPath());//修饰过的绝对路径
        System.out.println("==================使用相对路径===================");
        file=new File("./test/hello.txt");
        System.out.println(file.getParent());//父目录文件路径
        System.out.println(file.getName());//纯文件名称
        System.out.println(file.getPath());//文件路径
        System.out.println(file.getAbsolutePath());//绝对路径
        System.out.println(file.getCanonicalPath());//修饰过的绝对路径
    }
}

image-20230216232916267

file是Java层面的对象,并不是系统中的真实文件,是两种不同的概念

3.1创建文件

booleanexist()文件是否存在
booleanisDirectory()是否是一个目录
booleanisFile()是否是文件
booleancreateNewFile()创建文件
public class Create {
    public static void main(String[] args) throws IOException {
        File file=new File("./test.txt");
        System.out.println("是否存在:"+file.exists());
        System.out.println("是不是一个目录:"+file.isDirectory());
        System.out.println("是否是文件:"+file.isFile());
        System.out.println("=============================");
        System.out.println("创建文件:"+file.createNewFile());
        System.out.println("是否存在:"+file.exists());
        System.out.println("是不是一个目录:"+file.isDirectory());
        System.out.println("是否是文件:"+file.isFile());
    }
}

image-20230216235845936

这时就在根目录下就能找到刚才创建的文件了,当文件存在时不重复创建

image-20230217000151447

3.2 文件删除

booleandelate()
public class Delete {
    public static void main(String[] args) {
        File file=new File("./test.txt");
        if (file.exists()){
            System.out.println("删除文件:"+file.delete());
        }
    }
}

image-20230217000326607

3.3创建目录

booleanmkdir()
booleanmkdirs()
public class Mkdir {
    public static void main(String[] args) throws IOException {
        //File对象
        File file=new File("d:/JAVA/temp/test");
        //创建目录
        System.out.println("创建目录:"+file.mkdir());
        System.out.println("===================");
        //File对象
        File file1=new File("d:/JAVA/temp/test1/aaa/bbb/ccc");
        //创建多级目录
        System.out.println("创建多级目录:"+file1.mkdirs());
    }
}

image-20230217211235947

3.4文件名

String[]list()
File[]listFiles()
public class FileList {
    public static void main(String[] args) {
        File file=new File("d:/JAVA/temp");
        String[] list=file.list();
        System.out.println("文件名和目录名(String):"+Arrays.toString(list));
        File[] files=file.listFiles();
        System.out.println("文件名和目录名(File):"+ Arrays.toString(files));
    }
}

image-20230217212134793

3.5 文件重命名

booleanrenameTo()

3.6查看文件的可读性

booleancanRead()
booleancanWrite()
public class Permission {
    public static void main(String[] args) {
        File file=new File("d:/JAVA/temp/test/aaa.txt");
        System.out.println("是否可读"+file.canRead());
        System.out.println("是否可写"+file.canWrite());
    }
}

image-20230218131238400

image-20230218131307016