普通操作
public class TestDemo1 {
public static void main(String[] args) {
//练习1:创建两个文件对象,分别使用相对路径和绝对路径去创建
File file1 = new File("./a.txt");
File file2 = new File("/Users/lvting/b.txt");
//练习2:检查文件是否存在,不存在创建新文件
if(!file1.exists()){
try {
file1.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
if(!file2.exists()){
try {
file2.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
//练习3:创建单级目录 aaa/
File file3 = new File("./aaa");
file3.mkdir();
//练习4:创建多级目录 aaa/bbb/ccc/
File file4 = new File("./bbb/ccc/ddd");
file4.mkdirs();
//练习5:删除文件和目录
file1.delete();
file2.delete();
file3.delete();
file4.delete();
//练习6:获取文件信息,包括文件名、文件大小、文件的绝对路径、文件的父路径
File file = new File("./test.txt");
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println(file.getName());
System.out.println(file.length());
System.out.println(file.getAbsolutePath());
System.out.println(file.getParent());
System.out.println(file.getParentFile());
//练习7:目录或文件的判断
if(file.isFile()){
System.out.println("它是一个文件");
}else{
System.out.println("它是一个目录");
}
//练习8:获取目录
File dir = new File("/Users/lvting/aaa");
dir.mkdir();
File[] files = dir.listFiles();
for(File f: files){
System.out.println(f.getName());
}
}
}
多级文件夹的删除
public static void remove(File file){
if(file == null || !file.exists()){
return;
}
if(file.isFile()){
file.delete();
}
deleteDir(file);
}
public static void deleteDir(File file){
File[] files = file.listFiles();
//递归的终止条件
if(files == null){
//表示当前文件夹时一个空的文件夹
//满足终止条件时的处理方法
return;
}
//相同的逻辑
//遍历该文件的对象的集合,判断如果该文件对象是一个文件则直接删除,反之则递归调用
for(File f: files){
if(f.isFile()){
f.delete();
}else{
deleteDir(f);
}
}
//删除空的文件夹
file.delete();
}
从键盘上输入一个路径,打印出这个路径下所有.java文件
public static void printJavaFile(File dir){
if(dir == null || ! dir.exists()){
return;
}
//获取该目录所有的文件对象
File[] subFile = dir.listFiles();
//判断文件对象集合是否为空,即该目录是否是一个空目录
if(subFile == null){
return;
}
//遍历文件对象集合,打印以.java结尾的文件对象
for(File f: subFile){
if(f.isFile() && f.getName().endsWith(".java")){
System.out.println(f);
}else{
printJavaFile(f);
}
}
}
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个文件夹路径:");
String path = scan.nextLine();
}
自己写的:
public static File getDir(){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个文件夹路径");
while(true) {
String path = scanner.nextLine();
File dir = new File(path);
if(!dir.exists()){
System.out.println("你输入的路径有误,请重新输入");
}else if(dir.isFile()){
System.out.println("你输入的是一个文件路径,请输入一个文件夹路径");
}else{
return dir;
}
}
}
public static void printJavaFile(File dir){
File[] files = dir.listFiles();
for(File file: files){
if(file.isFile() && file.getName().endsWith(".java")){
System.out.println(file);
}
}
}
public static void main(String[] args) {
File dir = getDir();
printJavaFile(dir);
}