java File类总结

在这里插入图片描述
在这里插入图片描述
File类的使用例程:

import java.io.File;
import java.io.IOException;

public class FileClassTest {
	public static void main(String[] args) {
		//File类型的引用变量f接收的对象就是abc.txt
		File f = new File("D:\\test\\abc.txt"); //在java中 \\ 或者 / 表示文件的分隔符
		//f1指的是file.txt,这种使用的少
//		File f1 = new File("D:\\test", "inner\\file.txt");
		File f1 = new File("D:\\test\\inner");
		
		System.out.println(f.getName()); //获取文件名
		System.out.println(f1.getName()); //获取当前的目录名
		//获取当前文件的路径,new file时写的是绝对路径获取的就是绝对路径,写的是相对路径获取的就是相对路径
		System.out.println(f.getPath()); 
		//给文件或者文件夹重命名
		f.renameTo(new File("D:\\test\\123.txt"));
		
		File f2 = new File("D:\\test\\123.txt");
		System.out.println(f2.exists()); // 判断文件或文件夹是否存在
		
		File f3 = new File("D:\\test\\1.txt");
		if(!f3.exists())
		{
			try {
				f3.createNewFile(); //创建新的文件
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
		f3.delete(); //删除文件
		
		File f4 = new File("D:\\test\\test1");
		f4.mkdir(); //创建单层目录,如果想要创建多层目录就得一层一层地执行mkdir()
		
		File f5 = new File("D:\\test\\a\\b\\c");
		f5.mkdirs(); //可以一次性创建多层目录
		
		File f6 = new File("D:\\test");
		String[] str = f6.list(); //调用list方法返回的是当前文件夹的下的目录名和文件名
		//用for each循环遍历字符串数组str
		for(String s : str)
		{
			System.out.println(s);
		}
			
	}
}

练习:遍历d盘下的test文件夹,把test文件夹下所有的目录和文件全部遍历出来,不论层级有多深,都要全部遍历出来。

思路:用File类型的引用变量指向test文件夹,利用listFiles()返回文件夹下的子文件夹或者文件的file对象,即返回一个File类型的对象数组。利用递归方法把子文件夹内内的文件和文件夹都遍历出来。

程序代码如下:

import java.io.File;

//遍历d盘下的test文件夹,把test文件夹下所有的目录和文件全部遍历出来,不论层级有多深,都要全部遍历出来
//需要使用递归的方法来实现
public class FileClassPractice {
	public static void main(String[] args) {
		File f1 = new File("D:\\test");
		
		new FileClassPractice().test(f1);
	}
	
	//递归遍历文件
	public void test(File file) {
		if(file.isFile())
		{
			System.out.println(file.getAbsolutePath() + " 是文件");
		}
		else
		{
			System.out.println(file.getAbsolutePath() + " 是文件夹");
			//如果是文件夹,则该文件夹可能有子文件夹或者文件
			File[] fs = file.listFiles(); //获取当前文件夹下的子文件夹或者文件的file对象
			if(fs != null && fs.length > 0)
			{
				//用for each循环遍历File类型的数组fs,数组内的元素是file类型的对象
				for(File f : fs)
				{
					test(f); //递归
			    }

		    }
		} 
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值