目录
33.1什么是File对象?
java把对文件或文件夹的操作封装到File类中,该类中包含对文件|文件夹的所有增删改查的操作。
33.2创建file对象
public class TestFile {
public static void main(String[] args) {
//pathname:路径文件名。
File file=new File("D:\\gz02\\AAA");
}
}
33.3增加
package com.ykq.demo01;
import java.io.File;
public class TestFile {
public static void main(String[] args) throws Exception{
// //pathname:路径文件名。
// File file = new File("D:\\gz02\\AAA\\a.txt");
// //增加文件
// boolean newFile = file.createNewFile();
File file=new File("D:\\gz02\\AAA\\a\\b\\c\\d");
//创建文件夹--单个文件夹
boolean mkdir = file.mkdir();
System.out.println(mkdir);
//创建多层文件夹
boolean mkdirs = file.mkdirs();
System.out.println(mkdirs);
File file1=new File("D:\\gz02\\AAA\\f");
file1.createNewFile();
//注意: 跟后缀没有任何关系只跟您调用的方法有关
}
}
33.4删除
package com.ykq.demo01;
import java.io.File;
public class TestFile02 {
public static void main(String[] args) throws Exception {
//绝对路径: 包含盘符。
File file01=new File("D:\\gz02\\AAA\\a.txt");
file01.delete();//删除文件
File file02=new File("D:\\gz02\\AAA\\f");
file02.deleteOnExit();//当程序退出时才会删除
// Thread.sleep(20000);休眠
File file03=new File("D:\\gz02\\AAA\\a");
file03.delete();//删除空目录
//相对路径:
File file04=new File("a.txt");
file04.createNewFile();
File file05=new File("a\\b\\c");
file05.mkdirs();
}
}
33.5修改
public class TestFile03 {
public static void main(String[] args) throws Exception {
//绝对路径: 包含盘符。
File file01=new File("a.txt");
// file01.setReadOnly();//设置file01该文件只读
// file01.setWritable(true);//设置文件可写
// file01.setReadable(true);//设置文件读取
file01.renameTo(new File("b.txt"));//重命名
}
}
33.6 查询
package com.ykq.demo01;
import java.io.File;
import java.util.Arrays;
/**
* @program: day1114
* @description:
* @author: 闫克起2
* @create: 2023-11-14 17:00
**/
public class TestFile04 {
public static void main(String[] args) throws Exception {
//绝对路径: 包含盘符。
File file01=new File("D:\\gz02\\AAA");
// File file01=new File("b.txt");
// file01.createNewFile();
String name = file01.getName();//查询文件名
System.out.println("文件名:"+name);
String parent = file01.getParent();//获取文件的父路径
System.out.println("父路径:"+parent);
String path = file01.getPath();//获取文件相对路径
System.out.println("文件的相对路径:"+path);
String absolutePath = file01.getAbsolutePath();//获取绝对路径
System.out.println("绝对路径:"+absolutePath);
boolean directory = file01.isDirectory();//判断该文件是否为目录
System.out.println("判断是否为目录:"+directory);
boolean file = file01.isFile();//判断是否为文件
System.out.println("判断是否为文件:"+file);
String[] list = file01.list();//列出改文件下的所有子文件或目录名称
System.out.println(Arrays.toString(list));
File[] files = file01.listFiles();//列出该文件下的所有子文件或目录对象
for (File f:files){
System.out.println(f);
}
}
}
33.7 算法--递归调用
方法自己调用自己。1~100和
public class Test05 {
public static void main(String[] args) {
int fun = fun(100);
System.out.println("和:"+fun);
}
public static int fun(int n){
if(n==1){
return 1;
}
return fun(n-1)+n;
}
}
显示指定目录下的所有文件。D:/AAA下所有的文件↓
public class Test06 {
public static void main(String[] args) {
showAllFile("D:\\alipay.trade.wap.pay-java-utf-8");
}
public static void showAllFile(String path){
//根据路径创建一个文件对象
File file=new File(path);
//2.判断该文件是否为文件
if(file.isFile()){
return;
}
//3. 列出该目录下所有的文件对象
File[] files = file.listFiles();
for(File f:files){
//还是目录
if(f.isDirectory()){
System.out.println(f.getAbsolutePath()+" <dir>");
showAllFile(f.getAbsolutePath());
}else{
System.out.println(f.getAbsolutePath());
}
}
}
}