File类是Java内置的一个类,专门处理电脑磁盘上面的文件和文件夹的一个类
文件路径问题:
相对路径:
得有一个参照物
我在子豪的前面做,参照物是子豪
./代表的是当前的工作目录
…/上一级目录
…/…/上两级目录
…/…/…/上三级目录
绝对路径:
从磁盘的跟目录一直到文件的所在位置
C:\aaa\3.txt
File构造方法
File(String pathname)
通过将给定的路径名字符串转换为抽象路径名来创建新的 File
实例。
File(String parent, String child)
从父抽象路径名和子路径名字符串创建新的 File
实例
package com.qf.c_file;
import java.io.File;
public class Demo1 {
public static void main(String[] args) {
//将文件和文件夹路径抽象成了一个对象
File file = new File("c:/aaa/3.txt");
System.out.println(file);//c:\aaa\3.txt
File file1 = new File("c:/aaa", "3.txt");
System.out.println(file1);
System.out.println(File.separator);//\
File file2 = new File("c:\\aaa\\3.txt");
//得到一个结论: z在windows系统下面 / 和\都是可以的
//但是在linux系统下面 只能/ 才可以
// separator
//与系统相关的默认名称 - 分隔符字符
File file3 = new File("c:" + File.separator + "aaa" + File.separator + "3.txt");
System.out.println(file3);
}
}
File类下面的方法
boolean createNewFile(); 新建一个文件
1.如果文件路径不存在, 系统找不到指定的路径
2.如果文件已经存在 返回一个false
3.磁盘坏了
boolean mkdir(); 创建单级的目录
boolean mkdirs();创建多级的目录
package com.qf.c_file;
import java.io.File;
import java.io.IOException;
public class Demo2 {
public static void main(String[] args) throws IOException {
File file = new File("c:/aaa/sb.txt");
System.out.println(file.createNewFile());
File file1 = new File("c:/aaa/bbb");
System.out.println(file1.mkdir());//创建单级目录
File file2 = new File("c:/aaa/ccc/ddd");
System.out.println(file2.mkdirs());
}
}
删除文件或者文件夹
boolean delete();
package com.qf.c_file;
import java.io.File;
import java.io.IOException;
public class Demo2 {
public static void main(String[] args) throws IOException {
File file = new File("c:/aaa/sb.txt");
System.out.println(file.createNewFile());
File file1 = new File("c:/aaa/bbb");
System.out.println(file1.mkdir());//创建单级目录
File file2 = new File("c:/aaa/ccc/ddd");
System.out.println(file2.mkdirs());
System.out.println(file1.delete());
System.out.println(file.delete());
File file3 = new File("c:/aaa/ccc");
System.out.println(file3.delete());//因为ccc下面还有文件夹或者文件
//delete只能删除空的文件夹或者文件
}
}
File类下面判断的方法
boolean isFile();是否是文件
boolean isDirectory(); 是否是文件夹
boolean isHidden(); 是否是隐藏文件
boolean isAbsolute(); 是否是绝对路径
boolean exist(); 文件或者文件夹是否存在
package com.qf.c_file;
import java.io.File;
public class Demo3 {
public static void main(String[] args) {
File file = new File("c:/aaa/1.txt");
System.out.println(file.isFile());
File file1 = new File("c:/aaa/ccc");
System.out.println(file1.isFile());//false
System.out.println(file.isDirectory());//false
System.out.println(file1.isDirectory());//true
System.out.println(file.isHidden());//true
File file2 = new File("../");
System.out.println(file2);
System.out.println(file2.isAbsolute());//false
System.out.println(file.isAbsolute());//true
System.out.println(file.exists());//判断一个文件是否文件
System.out.println(file1.exists());
}
}
获取方法 返回值的是字符串的方法
String getName();获取文件或者文件夹的名字的
STring getParent();获取上一级目录
String getPath();获取file对象的绝对路径
package com.qf.c_file;
import java.io.File;
public class Demo4 {
public static void main(String[] args) {
File file = new File("c:/aaa/1.txt");
System.out.println(file.getName());//1.txt
System.out.println(file.getParent());//c:\aaa
System.out.println(file.getPath());//c:\aaa\1.txt
}
}
方法是long类型数据
long length();获取文件占用磁盘的字节数
long lastModified(); 获取当前文件修改的时间 时间戳
package com.qf.c_file;
import java.io.File;
public class Demo5 {
public static void main(String[] args) {
File file = new File("c:/aaa/1.txt");
System.out.println(file.length());//获取文件的大小的 是一个字节数
System.out.println(file.lastModified());//1679904357979
//时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
}
}
获取当前文件夹下面的所有的文件
File[] listFiles();
String[] list();
package com.qf.c_file;
import java.io.File;
public class Demo6 {
public static void main(String[] args) {
File file = new File("c:/");
File[] files = file.listFiles();
for (File file1 : files) {
System.out.println(file1);//获取文件对象
}
System.out.println("=======");
String[] list = file.list();
for (String s : list) {
System.out.println(s);//获取名字而已
}
}
}