File 类

File 类

  1. File类主要是Java为为文件的操作而设计的相关类
  2. File类的包名为 java.io,实现了Serializable,Comparable两大接口以便于其对象可序列化和比较
  3. File是文件和目录路径名的抽象表示,文件和目录是可以通过File封装成对象的,其封装的并不是一个真正存在的文件,仅是一个路径名。可以存在也可以不存在,通过具体的操作把这个路径的内仍转换为具体存在

常用方法

  • File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例
  • File(File parent,String child) 从父抽象路径名和子抽象路径名字符串创建新的File实例
  • File(String parent,String child) 从父路径名字符串和子路径名字符串创建新的File实例
import java.io.File;
import java.lang.reflect.Field;

public static void method1() {
    File file1 = new File("D:\\尚马\\study\\JavaIO\\test1.txt");
    System.out.println(file1);
//        System.out.println(file1.exists());
    File file2 = new File("D:\\尚马\\study\\JavaIO\\", "test2.txt");
//        System.out.println(file2.exists());
    File file3 = new File("D:\\尚马\\study\\JavaIO\\");
    Fiel fiel4 = new File(file3, "test3.txt");
//        System.out.println(file3.exists());
}

文件夹操作

  • boolean mkdir() 创建由此抽象路径名命名的目录,可以创建一级目录
  • boolean mkdirs() 创建由此抽象路径命名的目录,包括任何必需但不存在的父目录,可以创建多级目录
  • boolean delete() 永久删除 如果是删除目录,要求目录中没有文件或目录
  • boolean createNewFile() 当具有改名称的文件不存在时,创建一个又该抽象路径命名命名的新空文件夹
  • boolean setLastModified(long time) 设置文件的最后修改时间
 public static void method() throws IOException {
    File file1 = new File("D:\\尚马\\study\\JavaIO\\test1.txt");
    file1.createNewFile();
    System.out.println(file1.exists());
    File file2 = new File("D:\\尚马\\study\\JavaIO\\test2\\");
    file2.mkdir();
    System.out.println(file2.exists());
    File file3 = new File("D:\\尚马\\study\\JavaIO\\test3\\test3.txt");
    file3.mkdirs();
    System.out.println(file3.exists());
}

File类 判断方法

  • boolean isDirectory() 判断是否是文件夹(目录)
  • boolean isFile() 判断是否是文件
  • boolean exists() 判断文件是否存在
  • boolean isHidden() 判断是否是隐藏文件
  • boolean isAbsolute() 判断是否是绝对路径
    public static void method3() throws IOException {
    File file1 = new File("D:\\尚马\\study\\JavaIO\\test1.txt");
    //创建txt文件
    file1.createNewFile();
    //判断文件是否存在
    boolean b = file1.exists();
    System.out.println(b);
    //判断是否是文件夹
    boolean b1 = file1.isDirectory();
    System.out.println(b1);
    //判断是否是文件
    boolean b2 = file1.isFile();
    System.out.println(b2);
}

File类的获取方法

  • String getAbsolutePath() 获取绝对路径
  • long getFreeSpace() 获取剩余空间 单位是字节
  • long getUsableSpace() 获取可用空间
  • long getTotalSpace() 获取总空间
  • String getParent() 获取父路径
  • String getPath() 获取抽象路径名转化路径名字符串
  • String getName() 获取文件或文件夹的名称
  • long lastModified() 获取文件的最后修改时间
  • String[] list() 获取目录下所有内容,返回字符串数组
  • File[] listFiles 获取目录下的所有内容,返回File对象数组
  • long lastModified() 获取修改时间到计算机元年的毫秒值
  • boolean renameTo()移动并重命名文件
  • boolean setLastModified() 设置修改时间 参数就是计算机元年到某个时间的毫秒值
  • boolean setReadOnly() 设置只读文件
public static void main(String[] args) {
    System.out.println("开始");
    try {
        method();
    } catch (ArrayIndexOutOfBoundsException e) {
        //程序在运行时,如果发生报错,查找ArrayIndexOutOfBoundsException
        //捕获成功
        System.out.println("下标越界");
    }
    System.out.println("结束 ");
}

public static void method() {
    int[] arr = {1, 2, 3,};
    System.out.println(arr[3]);

}

绝对路径和相对路径的区别

  1. 绝对路径 是指文件在硬盘上真正存在的路径 例如: D:\develop\workspace\one\basecode\day08\src\cn\javasm\a\TestDemo.java
  2. 相对路径 是java过程中要访问的文件相对于当前文件的位置
  3. 例如: day19\abc.txt

分隔符

separatorChar 目录分隔符  
在windows中是\     在linux中是 / 

pathSeparatorChar 路径分隔符  
在windows中是 ;  在linux中 是 : 

案例一 删除给定目录中的全部文件

   // 删除目录中所有的文件或目录
public static void del(File file) {
    // 如果是目录
    if (file.isDirectory()) {
        // 获取所有的子目录和子文件
        File[] files = file.listFiles();
        for (File f : files) {
            del(f);
        }
    }
    // 删除文件或者目录
    file.delete();
} 

案例二:统计工作空间中java文件和class文件的个数

static int javaCount = 0;
static int classCount = 0;

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++;
    }
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇