Java中的File类
- java.io.File类: 文件和文件目录路径的抽象表示形式,与平台无关
- File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
- 想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。
- File对象可以作为参数传递给流的构造器
常用构造器
public File(String pathname)
以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
绝对路径: 包含盘符在内的文件或文件目录的路径
相对路径: 相较于某个路径下,指明的路径
public File(String parent,String child)
以parent为父路径, child为子路径创建File对象。
public File(File parent,String child) 根据一个父File对象和子文件路径创建File对象
路径分隔符:windows: \\ ;unix: \
举例:
public static void main(String[] args) { // 构造器1
File file1 = new File("hello.txt");//相当于当前的工程
File file2 = new File("D:\\Java\\java_demo\\day8\\he.txt");
// main
// 函数中相当于当前的过程
// 其他函数相当于当前module的目录
System.out.println(file1);
System.out.println(file2);
//hello.txt
//D:\Java\java_demo\day8\he.txt
// 构造器2
File file3 = new File("D:\\Java\\java_demo\\day8","JavaDemo");
System.out.println(file3);
// 构造器3
File file4 = new File(file3,"hi.txt");
System.out.println(file4);
//D:\Java\java_demo\day8\JavaDemo
//D:\Java\java_demo\day8\JavaDemo\hi.txt
}
常用方法
File类的获取功能
- public String getAbsolutePath(): 获取绝对路径
- public String getPath() : 获取路径
- public String getName() : 获取名称
- public String getParent(): 获取上层文件目录路径。 若无, 返回null
- public long length() : 获取文件长度( 即:字节数) 。 不能获取目录的长度。
- public long lastModified() : 获取最后一次的修改时间, 毫秒值
- public String[] list() : 获取指定目录下的所有文件或者文件目录的名称数组
- public File[] listFiles() : 获取指定目录下的所有文件或者文件目录的File数组
public static void test2(){ File file1 = new File("hello.txt");//相当于当前的module
File file2 = new File("D:\\Java\\java_demo\\day8\\hello.txt");
System.out.println(file1.getAbsolutePath());
System.out.println(file1.getPath());
System.out.println(file1.getName());
System.out.println(file1.getParent());
System.out.println(file1.length());
System.out.println(file1.lastModified());
System.out.println("********");
System.out.println(file2.getAbsolutePath());
System.out.println(file2.getPath());
System.out.println(file2.getName());
System.out.println(file2.getParent());
System.out.println(file2.length());
System.out.println(new Date(file2.lastModified()));
}
/*
D:\Java\java_demo\hello.txt
hello.txt
hello.txt
null
0
0
********
D:\Java\java_demo\day8\hello.txt
D:\Java\java_demo\day8\hello.txt
hello.txt
D:\Java\java_demo\day8
10
Thu May 16 20:51:39 CST 2019
* */
public static void test3(){ File file1 = new File("E:\\java资料\\尚硅谷");
String[] list = file1.list();// 获取指定目录下的所有文件或者文件目录的名称数组
for(String s:list){
System.out.println(s);
}
System.out.println();
File[] files = file1.listFiles()// 获取指定目录下的所有文件或者文件目录的File数组
for(File f: files){
System.out.println(f);
}
}
/*
* 1_课件
day18_IDEA的使用与多线程
day19_多线程
day20_常用类
day21_常用类
day22_枚举类与注解
day23_集合
day24_集合
day25_泛型与File
day26_IO流
day27_IO流与网络编程
day28_反射
day29_动态代理与Java8新特性
day30_Java9&10&11新特性
尚硅谷_宋红康_第12章_泛型
尚硅谷_宋红康_第13章_IO流
尚硅谷_宋红康_第14章_网络编程
尚硅谷_宋红康_第15章_Java反射机制
E:\java资料\尚硅谷\1_课件
E:\java资料\尚硅谷\day18_IDEA的使用与多线程
E:\java资料\尚硅谷\day19_多线程
E:\java资料\尚硅谷\day20_常用类
E:\java资料\尚硅谷\day21_常用类
E:\java资料\尚硅谷\day22_枚举类与注解
E:\java资料\尚硅谷\day23_集合
E:\java资料\尚硅谷\day24_集合
E:\java资料\尚硅谷\day25_泛型与File
E:\java资料\尚硅谷\day26_IO流
E:\java资料\尚硅谷\day27_IO流与网络编程
E:\java资料\尚硅谷\day28_反射
E:\java资料\尚硅谷\day29_动态代理与Java8新特性
E:\java资料\尚硅谷\day30_Java9&10&11新特性
E:\java资料\尚硅谷\尚硅谷_宋红康_第12章_泛型
E:\java资料\尚硅谷\尚硅谷_宋红康_第13章_IO流
E:\java资料\尚硅谷\尚硅谷_宋红康_第14章_网络编程
E:\java资料\尚硅谷\尚硅谷_宋红康_第15章_Java反射机制
*
* */
File类的重命名功能
- public boolean renameTo(File dest):把文件重命名为指定的文件路径
比如: file1.renameTo(file2)为例:要想保证返回true,需要file1在硬盘中是存在的,且fiile2不能在硬盘中存在;
public static void test4(){ File file1 = new File("hello.txt");// 存在
File file2 = new File("E:\\java资料\\尚硅谷\\hi.txt");// 不存在
boolean renameTo = file1.renameTo(file2);// true
System.out.println(renameTo);
}
File类的判断功能
- public boolean isDirectory(): 判断是否是文件目录
- public boolean isFile() : 判断是否是文件
- public boolean exists() : 判断是否存在
- public boolean canRead() : 判断是否可读
- public boolean canWrite() : 判断是否可写
- public boolean isHidden() : 判断是否隐藏
public static void test5(){ File file1 = new File("hello.txt");
System.out.println(file1.isDirectory());
System.out.println(file1.isFile());
System.out.println(file1.exists());
System.out.println(file1.canRead());
System.out.println(file1.canWrite());
System.out.println(file1.isHidden());
File file2 = new File("E:\\java资料\\尚硅谷");
System.out.println(file2.isDirectory());
System.out.println(file2.isFile());
System.out.println(file2.exists());
System.out.println(file2.canRead());
System.out.println(file2.canWrite());
System.out.println(file2.isHidden());
// true
// false
// true
// true
// true
// false
}
File类的创建功能
- public boolean createNewFile() : 创建文件。 若文件存在, 则不创建, 返回false
- public boolean mkdir() : 创建文件目录。 如果此文件目录存在, 就不创建了。如果此文件目录的上层目录不存在, 也不创建。
- public boolean mkdirs() : 创建文件目录。 如果上层文件目录不存在, 一并创建。注意事项:如果你创建文件或者文件目录没有写盘符路径, 那么, 默认在项目路径下。
public static void test7(){ File file1 = new File("D:\\iotest\\io4\\io9");
boolean mkdir = file1.mkdir();
if(mkdir){
System.out.println("创建成功1");
}
File file2 = new File("D:\\iotest\\io1\\io2");
boolean mkdir1 = file1.mkdirs();
if(mkdir1){
System.out.println("创建成功2");
}
}
File类的删除功能
- public boolean delete(): 删除文件或者文件夹
删除注意事项:
Java中的删除不走回收站。
要删除一个文件目录, 请注意该文件目录内不能包含文件或者文件目录
public static void test6() throws IOException { File file1 = new File("hello.txt");
if(!file1.exists()){
file1.createNewFile();
System.out.println("创建成功");
}else{
file1.delete();
System.out.println("删除成功");
}
}
以上是 Java中的File类 的全部内容, 来源链接: utcz.com/z/392272.html