File
查看文件是否存在,创建文件,绝对路径,相对路径
private static void show() throws IOException {
File file = new File("F:\\a.txt");
String absolutePath = file.getAbsolutePath();
System.out.println("file的绝对路径:"+absolutePath);
//判断文件是否存在
System.out.println(file.exists());
//通过判断文件是否存在,不存在则我们自己去创建
//创建文件
if(!file.exists()){
file.createNewFile(); //F盘下创建了a文件
}
System.out.println("-------------");
/**
* 相对路径 相当于当前项目
*/
File file2 = new File("a.txt");
file2.createNewFile();
System.out.println("file2的绝对径:"+file2.getAbsolutePath());
}
通过两级目录创建对象
private static void show2() throws IOException {
//通过两级目录创建对象
//通过子父级路径(字符串形式)创建对象
File file = new File("F:\\test", "a.txt");
file.createNewFile();
System.out.println(file.exists());
//通过父级文件对象+子级路径创建对象
File parent = new File("F:\\test");
File file2 = new File(parent, "a.txt");
System.out.println(file2.equals(file));
}
演示删除文件/文件夹
private static void show3() {
// 演示删除文件/文件夹(这个方法只能删除空的)
File file = new File("F:\\test\\a.txt");
boolean delete = file.delete();
System.out.println(delete);
File file2 = new File("F:\\test");
System.out.println("文件夹内有东西是否可以删除:"+file2.delete());
}
创建单层/多层文件夹
private static void show() {
File file = new File("F:\\tass");
boolean mkdir = file.mkdir();
System.out.println("文件夹是否创建成功:"+mkdir);
File file2 = new File("F:\\tass\\a\\b\\c");
boolean mkdirs = file2.mkdirs();
System.out.println("创建多层文件夹:"+mkdirs);
}
判断是文件夹还是文件
private static void show() {
File file = new File("F:\\tass\\a");
System.out.println("判断是文件吗:"+file.isFile());
System.out.println("判断是文件夹吗:"+file.isDirectory());
}
获得文件夹下的所有内容,以字符串数组或者文件对象数组返回
private static void show() {
File file = new File("F:\\tass");
//获得文件夹下的所有
//list()方法将文件夹下的所有内容都以字符串数组返回
String[] list = file.list();
for (String s : list) {
if(s.endsWith("txt")){
System.out.println(s);
}
}
System.out.println("-------------");
//获得文件夹下的所有内容,以文件对象(文件+文件夹)数组返回
File[] files = file.listFiles();
for (File file1 : files) {
if(file1.exists()){
file1.delete();
}
}
}
重命名/剪切并且重命名
private static void show() throws IOException {
File file = new File("F:\\tass\\a\\b\\c", "a3.txt");
System.out.println(file.exists());
if(!file.exists()){
file.createNewFile();
}
/**
* 重命名前面位置一致: 就是重命名
* 重命名前面位置不一致: 就是[剪切并重命名]
*/
File file1 = new File("F:\\tass\\a\\b\\c\\a3.txt");
File file2 = new File("F:\\tass\\a\\b\\a3.txt");
file1.renameTo(file2);
}
//方法演示
- boolean delete() 删除文件夹/文件,有内容无法删除该文件>
- boolean mkdir(); 创建单层文件夹
- boolean mkdirs(); 创建多层文件夹
- 判断文件夹类型 boolean isDirectory();
- 判断是否是文件 boolean isFile();
- boolean renameTo()
- 重命名前面位置一致,就是重命名
- 重命名前面位置不一致,就是剪切并重命名
常用方法:
- 字符串路径创建对象 new File(String f)
- 判断文件是否存在 exists()
- 创建文件 mkdir()
- 删除文件 delete()
- 获得完整路径 getAbsolutePath()
练习:设计方法,传入一个路径将该路径指定的文件或者空文件夹删掉
public class Demo1 {
public static void main(String[] args) throws IOException {
delete(new File("F:\\a.txt"));
}
public static void delete(File file){
file.delete();
}
}
练习2:设计方法,传入路径,将其删掉(不管是文件还是文件夹,也不管文件夹是否为空,都删除)
public class Demo1 {
public static void main(String[] args) throws IOException {
delete(new File("F:\\tass"));
}
public static void delete(File file){
//获得传进来的路径 把所有文件对象放到文件数组中
File[] files = file.listFiles();
for (File file1 : files) {
if(file1.isFile()){
file1.delete();
}else{
//否则就是文件夹
delete(file1);
}
}
//循环结束 只剩下传进来的空文件夹
//删掉
file.delete();
}
}