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实例

“`java
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) 设置文件的最后修改时间

“`java
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() 判断是否是绝对路径

“`java
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() 设置只读文件

“`java
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中 是 :
“`

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

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

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

“`java
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
小恐龙
花!
上一篇
下一篇