基础_Java File类


不是文件 而是路径

三个构造 :

  • File(File parent, String child)从父抽象路径名和子路径名字符串创建新的 File实例。
  • File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
  • File(String parent, String child)从父路径名字符串和子路径名字符串创建新的 File实例。
  • File(URI uri)通过将给定的 file: URI转换为抽象路径名来创建新的 File实例。

boolean createNewFile() 当文件不存在时 创建新文件

File file = new File("a.txt");
syso(file.createNewFile());

boolean mkdir()
boolean mkdirs() //多级
重命名 删除
Boolean renameTo() 如果路径相同 就改名 否则改名并剪切
Boolean delete() 不走回收站 删除文件
只能删除 空文件夹

类的判断功能 :

public boolean isDirectory() 判断是否是目录
public boolean isFile() 是文件
public boolean exits() 是否存在
public boolean canRead() 判断是否可读
public boolean canWrite()
public boolean isHidden() 判断是否隐藏

file.setReadable(false) ; windows下 设置无效 因为任何文件都是可读的
file.setWritable(false)

类的获取功能 :

  • public string getAbsolutePath ():获取绝对路径public string getPath()∶获取路径
  • public string getName():获取名称public long length():获取长度。字节数
  • public long lastModified():获取最后一次的修改时间,瓷秒值
  • public string[] list ( )∶获取指定目录下的所有文件或者文件央的名称数组
  • public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组

输出指定目录下指定后缀的文件名

File file = new File("E:\\");
File [] subFiles = file.listFiles();
for(File subFile : subFiles){
    if(subFile.isFile() && subFile.getName().endsWith(".jpg")){
        syso(subFile)
    }
}

文件名称过滤器 :

File dir = new File("C:\\");
String arr[] = dir.list(new FilenameFilter() {
	@Override
	public boolean accept(File dir, String name) {
		File file = new File(dir, name);
		return file.isFile()&&file.getName().endsWith(".dll");
	}
});
for (String string : arr) {
	System.out.println(string);
}

递归 取所有后缀为java的文件 :

public class diGui {
	public static void main(String[] args) {
		File file = getFile();
		printJavaFile(file);
	}

	public static File getFile(){
		Scanner sc = new Scanner(System.in);
		while(true){
			System.out.println("请输入 :");
			String line = sc.nextLine();
			File dir = new File(line);
			if(!dir.exists()){
				System.out.println("path not exits!");
			}else if(dir.isFile()){
				System.out.println("it's file!");
			}else{
				return dir;
			}
		}
	}
	public static void printJavaFile(File dir){
		File subFiles[] = dir.listFiles(); //1.获取到该文件夹路径下的所有的文件和文件夹  存储在File数组中
		for (File subfile : subFiles) {//2.遍历    //3.是文件 且后缀java
			if(subfile.isFile()&&subfile.getName().endsWith(".java")){
				System.out.println(subfile);
			}else if(subfile.isDirectory()){//4.如果是文件 就递归调用
				printJavaFile(subfile);
			}
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bruce.vvu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值