龙空技术网

File的介绍与递归

后山de小猿 136

前言:

此刻各位老铁们对“java file 文件路径”大致比较关切,朋友们都需要了解一些“java file 文件路径”的相关知识。那么小编同时在网络上搜集了一些有关“java file 文件路径””的相关文章,希望姐妹们能喜欢,大家一起来学习一下吧!

1 File类1.1 概述

java.io.file 类是文件和目录的路径名的抽象表示,主要用于文件和目录的创建,查找和删除等操作。

1.2 构造方法public File(string pathname) :通过将给定的路径名称字符串转换为抽象路径名来创建新的File实例。public File(string parent,string child):从父路径名字符串和子路径名创建新的File实例public File(File parent,stirng child):从抽象路径名和子路径名字符串创建新的File实例构造举例:

//字符串文件路径名String pathname = "D:\\fenglin\\aaa.txt";File file = new File(pathname);//父路径字符串和子路径字符串String parent = "D:\\fenglin";String child = "bbb.txt";File file1 = new File(parent,child);//父抽象路径和子路径字符串File parentFile = new File("D:\\fenglin");String child1 = "ccc.txt";File file2 = new File(parentFile,child1);

注意:

1、一个File对象代表硬盘中实际存在的一个文件或目录

2、无论该路径下是否存在文件或者目录,都不影响File对象的创建

1.3 常用方法public string getAbsolutePath():返回此File的绝对路径名称字符串public string getPath():返回此File的路径名称字符串public string getName():返回此File的文件或目录名称public long length():返回此File表示的文件的长度1.3.1 获取判断功能的方法public boolean exists ():此File表示的文件或目录的是否实际存在public boolean isDirectory():此File表示的是否是目录public boolean isFile():此File表示的是否是文件1.3.2 创建、删除功能的方法public boolean createNewFile():当且仅当具有该名称的文件不存在时,创建一个新的空文件public boolean delete():删除由此File表示的文件或者目录public boolean mkdir():创建由此File表示的目录public boolean mkdirs():创建此File表示的目录,包括任何必需但不存在的父目录1.4 目录的遍历public String[] list():返回一个string数组,表示该File目录中的所有子文件和目录public File[] listFiles():返回一个file数组,表示该File目录中的所有子文件或目录2.1 概述递归:指当前方法内调用自己的这种现象递归的分类:递归分为两种:直接递归和间接递归直接递归:方法自身调用自己间接递归:可以A方法调用B方法,B方法调用C方法,C方法调用A方法注意事项:递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出在递归中虽然有限定条件,但是递归次数不能太多,否则也会发生栈内存溢出构造方法,禁止递归2.2 递归累加求和

@Testpublic void  test() throws IOException {    int num = 5;    System.out.println(getSum(num));}public static int getSum(int num){    if(num == 1){        return 1;    }    return num + getSum(num -1);}
2.3 递归求阶乘所有小于及等于该数的正整数的积;n!:n*(n-1)*...*3*2*1;
@Testpublic void  test() throws IOException {    int num = 5;    System.out.println(getSum(num));}public static int getSum(int num){    if(num == 1){        return 1;    }    return num * getSum(num -1);}
3 文件过滤器优化

Java.io.FileFilter是一个接口,是File的过滤器。该接口的对象可以传递给File类的listFiles(Filefilter)作为参数,接口中只有一个方法

public accept(File pathname):测试pathname是否应该包含在当前file目录中,符合则返回true分析接口作为参数,需要传递子类对象,重写其中方法,选择匿名内部类方式,比较简单accept方法,参数为File,表示当前目录的子文件或子目录,保留住则返回true,过滤返回false过滤器作用:listFiles(FileFilter)返回的数组元素中,子文件对象都是符合条件的,可以直接打印。代码:

public class DiGuiDemo4 {public static void main(String[] args) {File dir = new File("D:\\aaa");printDir2(dir);}public static void printDir2(File dir) {// 匿名内部类方式,创建过滤器子类对象File[] files = dir.listFiles(new FileFilter() {    @Override    public boolean accept(File pathname) {    return pathname.getName().endsWith(".java")||pathname.isDirectory();  }});// 循环打印for (File file : files) {if (file.isFile()) {System.out.println("文件名:" + file.getAbsolutePath());} else {printDir2(file);}}}}

标签: #java file 文件路径