(java总结)File类

package Demo41;

import java.io.File;

/*
java.io.File类
    文件和目录路径的抽象表现形式。
    java把电脑中的文件和文件夹(目录)封装为了一个FIle类,我们可以使用File类对文件和文件夹进行操作
    可以使用FIle中的方法
            创建一个文件/文件夹
            删除文件/文件夹
            获取文件/文件夹
            判断文件/文件夹是否存在
            对文件夹进行遍历
            获取文件的大小
       File类是一个与系统无关的类,任何操作系统都可以使用这个方法
       重点词:
            file:文件
            directory:文件夹/目录
            path:路径
静态方法:
static String pathSeparator     与系统相关的路径分隔符字符,为方便起见,表示为字符串。
static char pathSeparatorChar   与系统相关的路径分隔符。
static String separator         与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串。
static char separatorChar       与系统相关的默认名称分隔符。
操作路径不能写死了:
    比如 C:\develop\a.txt  windows    反斜杠要写俩个 \\转义字符
        C:/develop/a.txt  linux
    应该写成这样:
        "C:"+File.separator+"develop"File.separator+"a.txt"


 */
public class DemoFile {
    public static void main(String[] args) {

        String pathSeparator = File.pathSeparator;
        System.out.println(pathSeparator);//路径分隔符字符 windows:分号; linux:冒号:

        String separator = File.separator;
        System.out.println(separator);//文件名称分隔符 windows:反斜杠\   linux:正斜杠/
    }
}

package Demo41;

import java.io.File;

/*
路径:
    绝对路径:是一个完整的路径
                以盘符开始的
    相对路径:是一个简化路径
                相对于当前项目的根目录
注意:路径中不区分大小写

File(File parent, String child)     从父抽象路径名和子路径名字符串创建新的 File实例。
File(String pathname)               通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
File(String parent, String child)   从父路径名字符串和子路径名字符串创建新的 File实例。
File(URI uri)                       通过将给定的 file: URI转换为抽象路径名来创建新的 File实例。

 */
public class DemoFile1 {
    public static void main(String[] args) {
        show01();
        show02("C:\\","a.txt");
        show03();
    }
  //  File(File parent, String child)     从父抽象路径名和子路径名字符串创建新的 File实例。
    //好处可以使用File的方法对路径进行操作,在使用路径创建对象
    private static void show03() {
        File parent = new File("C:\\");
        File file = new File(parent, "hello");
        System.out.println(file);
    }

    //File(String parent, String child)   从父路径名字符串和子路径名字符串创建新的 File实例。
    //好处是两个路径可以单独写
    private static void show02(String parent, String child) {
        File file = new File(parent,child);
        System.out.println(file);//C:\a.txt父路径和子路径组装成一起
    }

    private static void show01() {
        //File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
        File f1 = new File("E:\\hadoop\\testfile");
        System.out.println(f1);
    }
}

package Demo41;

import java.io.File;

/*
    File类获取功能的方法
            -public String getAbsolutePath(): 返回此File的绝对路径名称字符串
            -public String getPath():         将此file转换为路径名字符串
            -public String getName():         返回由此文件表示的文件或目录的名称
            -public Long Length():            返回由此File表示的文件的长度


 */
public class DemoFile2 {

    public static void main(String[] args) {

        show01();
        System.out.println("==================");
        show02();
        System.out.println("===================");
        show03();
        System.out.println("===================");
        show04();
    }
// -public Long Length():            返回由此File表示的文件的长度
    //路径不存在,返回0
    private static void show04() {
        File z1 = new File("E:\\hadoop\\testfile\\spark.txt");
        long l1 = z1.length();
        System.out.println(l1);

        File z2 = new File("E:\\hadoop");
        long l2 = z2.length();
        System.out.println(l2);
    }

    //-public String getName():         返回由此文件表示的文件或目录的名称
    //获取的就是构造方法传递路径的结尾部分
    private static void show03() {
        File r1 = new File("E:\\hadoop\\testfile");
        String name = r1.getName();
        System.out.println(name);//testfile

        File r2 = new File("a.txt");
        String path = r2.getName();
        System.out.println(path);//a.txt
    }

    //       -public String getPath():         将此file转换为路径名字符串
    //输入什么路径,输出就是什么路径
    //toString方法就是 ()方法
    private static void show02() {
        File w1 = new File("E:\\hadoop\\testfile");
        String w11 = w1.getPath();
        System.out.println(w11);//E:\hadoop\testfile

        File w2 = new File("a.txt");
        String path = w2.getPath();
        System.out.println(path);//a.txt
    }

    //public String getAbsolutePath(): 返回此File的绝对路径名称字符串
        //无论是绝对路径还是相对路径,返回的都是绝对路径
    private static void show01() {
        File f1 = new File("E:\\hadoop\\testfile");
        File f11 = f1.getAbsoluteFile();
        System.out.println(f11);//E:\hadoop\testfile

        File f2 = new File("a.txt");
        File f22 = f2.getAbsoluteFile();
        System.out.println(f22);//E:\hadoop\testfile
    }
}

package Demo41;

import java.io.File;
import java.io.IOException;

/*
File判断的方法
    public boolean exists(): 此File表示的文件或者目录是否实际存在
    public boolean isDirectory: 此File表示是否为目录
    public boolean isFile(): 此File表示是否为文件

创建删除功能的方法:
    public boolean createNewFile(): 当且仅当具有该名称的文件尚不存在时,创建一个心得空文件
    public boolean delete() :删除此file表示的文件或者目录
    public boolean mkdir() : 创建此file表示的目录,
    public boolean mkdirs() : 创建此file表示的目录, 包括任何必需但不存的父目录,多个文件夹

File类遍历
    public String[] list(): 返回一个String数组, 表示该file目录中的所有子文件或者目录
    public File[] listFiles(): 返回一个file数组,表示该file目录中的所有子文件或者目录

    注意事项:
        list方法和listFile方法遍历的是构造方法中给出的目录
        如果构造方法中给粗的目录的路径不存在,会抛出空指针异常
 */
public class DemoFile3 {
    public static void main(String[] args) throws IOException {
//        show1();
//        show2();
        show3();
    }
/*
   File类遍历
 */
    private static void show3() {
        File dir = new File("E:\\hadoop");
        //获取当前目录下的文件及文件夹名称
        String[] names = dir.list();
        for (String name : names) {
            System.out.println(name);
        }

        //获取当前目录下的文件及文件夹对象,只要拿到了文件对象,就可以获取更多信息
        File[] files = dir.listFiles();
        for (File file : files) {
            System.out.println(file);
        }

    }

    /*
    创建删除功能的方法:
     */
//    private static void show2() throws IOException {
//        //文件的创建
//        File c = new File("a.txt");
//        System.out.println(c.exists());
//        System.out.println(c.createNewFile());
//        System.out.println(c.exists());
//        //目录的创建
//        File d = new File("a.txt");
//        System.out.println(d.exists());
//        System.out.println(d.mkdir());
//        System.out.println(d.exists());
//      //创建多级目录
//        File e = new File("C:\\hadoop\\apps");
//        System.out.println(e.mkdir());
//    }
//
//    /*
//    File判断的方法
//     */
//    private static void show1() {
//        //判断是否存在
//        File a1 = new File("E:\\hadoop\\testfile");
//        boolean a11 = a1.exists();
//        System.out.println(a11);
//
//        File b1 = new File("a.txt");
//        //判断是文件还是目录
//        boolean b11 = b1.isFile();
//        boolean b22 = b1.isDirectory();
//        System.out.println(b11);
//        System.out.println(b22);
//    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值