国产99做视频网站,建立免费网站,dede5.7内核qq个性门户网站源码,做网站是那个语言写的今日内容介绍 1、File 2、递归 xmind#xff1a;下载地址#xff1a; 链接#xff1a;https://pan.baidu.com/s/1Eaj9yP5i0x4PiJsZA4StQg 密码#xff1a;845a 01IO技术概述 * A:IO技术概述* a: Output* 把内存中的数据存储到持久化设备上这个动作称为输出#xff08;写下载地址 链接https://pan.baidu.com/s/1Eaj9yP5i0x4PiJsZA4StQg 密码845a 01IO技术概述 * A:IO技术概述* a: Output* 把内存中的数据存储到持久化设备上这个动作称为输出写Output操作* b: Input* 把持久设备上的数据读取到内存中的这个动作称为输入读Input操作* c: IO操作* 把上面的这种输入和输出动作称为IO操作 02File类的概述和作用 * A:File类的概述和作用* a: File的概念* File类是文件和目录路径名的抽象表示形式* Java中把文件或者目录文件夹都封装成File对象* 我们要去操作硬盘上的文件或者文件夹只要找到File这个类即可 03File类静态的成员变量 * A:File类静态的成员变量* a: pathSeparator* 与系统有关的路径分隔符为了方便它被表示为一个字符串* b: separator* 与系统有关的默认名称分隔符为了方便它被表示为一个字符串* c: 案例代码/** java.io.File* 将操作系统中的,文件,目录(文件夹),路径,封装成File对象* 提供方法,操作系统中的内容* File与系统无关的类* 文件 file* 目录 directory* 路径 path*/public class FileDemo {public static void main(String[] args) {//File类静态成员变量//与系统有关的路径分隔符String separator File.pathSeparator;System.out.println(separator);// 是一个分号,目录的分割(window中环境变量配置各个路径用分号分割表示一个完整的路径结束) Linux中是冒号 ://与系统有关的默认名称分隔符separator File.separator;System.out.println(separator);// 向右 \ 目录名称分割 Linux / }} 04File类构造方法_1 * A: File类构造方法_1* a: File(String pathname)* 通过将给定路径名字符串转换为一个File对象,之后可以使用File中的方法* windows中的路径或文件名不区分大小写* d: 案例代码public class FileDemo1 {public static void main(String[] args) {function();}/** File(String pathname)* 传递路径名: 可以写到文件夹,可以写到一个文件* c:\\abc c:\\abc\\Demo.java* 将路径封装File类型对象*/public static void function(){File file new File(d:\\eclipse);System.out.println(file);}} 05相对路径和绝对路径 * A: 相对路径和绝对路径* a: 绝对路径* 绝对路径是一个固定的路径,从盘符开始* b: 相对路径* 相对路径相对于某个位置,在eclipse下是指当前项目下 * c: 路径绝对路径在系统中具有唯一性c:\\windows\\system32相对路径表示路径之间的关系D:\\develop\\Java\\jdk1.7.0_72\\binD:\\develop\\Java\\jre7路径之间关系Java 父目录是D:\\developJava 子目录是jdk1.7.0_72父路径是 唯一性子目录是可以多个 06File类的构造方法_2 * A: File类的构造方法_2* a:File(String parent, String child) * 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 对象* b: File(File parent, String child)* c: 案例代码public class FileDemo1 {public static void main(String[] args) {function_2();}/** File(File parent,String child)* 传递路径,传递File类型父路径,字符串子路径* 好处: 父路径是File类型,父路径可以直接调用File类方法*/public static void function_2(){File parent new File(d:);File file new File(parent,eclipse);System.out.println(file);}/** File(String parent,String child)* 传递路径,传递字符串父路径,字符串子路径* 好处: 单独操作父路径和子路径*/public static void function_1(){File file new File(d:,eclipse);System.out.println(file);}} 07File类创建文件功能 * A: File类创建文件功能* a: public boolean createNewFile()* 创建文件 如果存在这样的文件就不创建了* b: 案例代码public class FileDemo2 {public static void main(String[] args)throws IOException {function();} /** File创建文件的功能* boolean createNewFile()* 创建的文件路径和文件名,在File构造方法中给出* 文件已经存在了,不在创建*/public static void function()throws IOException{File file new File(c:\\a.txt);boolean b file.createNewFile();System.out.println(b);}} 08File类创建目录功能 * A: File类创建目录功能* a: 创建目录* public boolean mkdir():创建文件夹 如果存在这样的文件夹就不创建了* public boolean mkdirs():创建文件夹,如果父文件夹不存在会帮你创建出来* b: 案例代码public class FileDemo2 {public static void main(String[] args)throws IOException {function_1();}/** File创建文件夹功能* boolean mkdirs() 创建多层文件夹* 创建的路径也在File构造方法中给出* 文件夹已经存在了,不在创建*/public static void function_1(){File file new File(c:\\abc);boolean b file.mkdirs();System.out.println(b);} } 09File类删除功能 * A: File类删除功能* a: 删除功能* public boolean delete():删除文件或者文件夹
* B: 案例代码public class FileDemo2 {public static void main(String[] args)throws IOException {function_2();}/** File类的删除功能* boolean delete()* 删除的文件或者是文件夹,在File构造方法中给出* 删除成功返回true,删除失败返回false* 删除方法,不走回收站,直接从硬盘中删除* 删除有风险,运行需谨慎*/public static void function_2(){File file new File(c:\\a.txt);boolean b file.delete();System.out.println(b);} } 10File类获取功能 * AFile类获取功能* a: 方法介绍* String getName(): 返回路径中表示的文件或者文件夹名* 获取路径中的最后部分的名字* long length(): 返回路径中表示的文件的字节数* String getAbsolutePath(): 获取绝对路径,返回String对象* File getAbsoluteFile() : 获取绝对路径,返回File对象* eclipse环境中,写一个相对路径,绝对位置工程根目录* String getParent(): 获取父路径,返回String对象* File getParentFile(): 获取父路径,返回File对象* b: 案例代码public class FileDemo3 {public static void main(String[] args) {function_3();}/** File类的获取功能* String getParent() 返回String对象* File getParentFile()返回File对象* 获取父路径*/public static void function_3(){File file new File(d:\\eclipse\\eclipse.exe);File parent file.getParentFile();System.out.println(parent);}/** File类获取功能* String getAbsolutePath() 返回String对象* File getAbsoluteFile() 返回File对象* 获取绝对路径* eclipse环境中,写的是一个相对路径,绝对位置工程根目录*/public static void function_2(){File file new File(src);File absolute file.getAbsoluteFile();System.out.println(absolute);}/** File类获取功能* long length()* 返回路径中表示的文件的字节数*/public static void function_1(){File file new File(d:\\eclipse\\eclipse.exe);long length file.length();System.out.println(length);}/** File类的获取功能* String getName()* 返回路径中表示的文件或者文件夹名* 获取路径中的最后部分的名字*/public static void function(){File file new File(d:\\eclipse\\eclipse.exe);String name file.getName();System.out.println(name);/*String path file.getPath();System.out.println(path);*/// System.out.println(file);}} 11File类判断功能 * A: File类判断功能* a: 方法介绍* boolean exists(): 判断File构造方法中封装路径是否存在* 存在返回true,不存在返回false* boolean isDirectory(): 判断File构造方法中封装的路径是不是文件夹* 如果是文件夹,返回true,不是文件返回false* boolean isFile(): 判断File构造方法中封装的路径是不是文件* 如果是文件,返回true,不是文件返回false* b: 案例代码public class FileDemo4 {public static void main(String[] args) {function_1();}/** File判断功能* boolean isDirectory()* 判断File构造方法中封装的路径是不是文件夹* 如果是文件夹,返回true,不是文件返回false* * boolean isFile()* 判断File构造方法中封装的路径是不是文件*/public static void function_1(){File file new File(d:\\eclipse\\eclipse.exe);if(file.exists()){boolean b file.isDirectory();System.out.println(b);}}/** File判断功能* boolean exists()* 判断File构造方法中封装路径是否存在* 存在返回true,不存在返回false*/public static void function(){File file new File(src);boolean b file.exists();System.out.println(b);}} 12File类list获取功能 * A: File类list获取功能* a: 方法介绍* String[] list()获取到File构造方法中封装的路径中的文件和文件夹名 (遍历一个目录)* 返回只有名字* File[] listFiles()获取到,File构造方法中封装的路径中的文件和文件夹名 (遍历一个目录)* 返回的是目录或者文件的全路径* static File[] listRoots(): 列出可用的文件系统根 * b: 案例代码public class FileDemo {public static void main(String[] args) {function_2();}public static void function_2(){//获取系统中的所有根目录File[] fileArr File.listRoots();for(File f : fileArr){System.out.println(f);}}/** File类的获取功能* File[] listFiles()* 获取到,File构造方法中封装的路径中的文件和文件夹名 (遍历一个目录)* 返回的是目录或者文件的全路径*/public static void function_1(){File file new File(d:\\eclipse);File[] fileArr file.listFiles();for(File f : fileArr){System.out.println(f);}}/** File类的获取功能* String[] list()* 获取到,File构造方法中封装的路径中的文件和文件夹名 (遍历一个目录)* 返回只有名字*/public static void function(){File file new File(c:);String[] strArr file.list();System.out.println(strArr.length);for(String str : strArr){System.out.println(str);}}} 13文件过滤器 * A: 文件过滤器* a: 作用* 过滤一个目录下的指定扩展名的文件或者包含某些关键字的文件夹* b: 方法介绍* public String[] list(FilenameFilter filter)* public File[] listFiles(FileFilter filter)* C: 案例代码 /** 自定义过滤器* 实现FileFilter接口,重写抽象方法*/public class MyFilter implements FileFilter{public boolean accept(File pathname) {/** pathname 接受到的也是文件的全路径* c:\\demo\\1.txt* 对路径进行判断,如果是java文件,返回true,不是java文件,返回false* 文件的后缀结尾是.java*///String name pathname.getName();return pathname.getName().endsWith(.java);}}/** File类的获取,文件获取过滤器* 遍历目录的时候,可以根据需要,只获取满足条件的文件* 遍历目录方法 listFiles()重载形式* listFiles(FileFilter filter)接口类型* 传递FileFilter接口的实现类* 自定义FileFilter接口实现类,重写抽象方法,* 接口实现类对象传递到遍历方法listFiles*/public class FileDemo1 {public static void main(String[] args) {File file new File(c:\\demo);File[] fileArr file.listFiles(new MyFilter());for(File f : fileArr){System.out.println(f);}}} 14文件过滤器_原理分析 * A:文件过滤器_原理分析* listFiles()遍历目录的同时获取到了文件名全路径调用过滤器的方法accept* 将获取到的路径传递给accept方法的参数pathname* accept方法接收了参数pathname参数是listFiles传递来的* 在accept方法中进行判断如果这个路径是Java文件返回true走着返回false* 一旦方法返回了true* listFiles将路径保存到File数组中 15递归遍历全目录 * A: 递归遍历全目录* a: 案例代码/** 对一个目录的下的所有内容,进行完全的遍历* 编程技巧,方法的递归调用,自己调用自己*/public class FileDemo {public static void main(String[] args) {File dir new File(d:\\eclipse);getAllDir(dir);}/** 定义方法,实现目录的全遍历*/public static void getAllDir(File dir){System.out.println(dir);//调用方法listFiles()对目录,dir进行遍历File[] fileArr dir.listFiles();for(File f : fileArr){//判断变量f表示的路径是不是文件夹if(f.isDirectory()){//是一个目录,就要去遍历这个目录//本方法,getAllDir,就是给个目录去遍历//继续调用getAllDir,传递他目录getAllDir(f);}else{System.out.println(f);}}}} 16递归概念和注意事项 * A:递归概念和注意事项* a: 递归概念* 递归指在当前方法内调用自己的这种现象* 递归分为两种直接递归和间接递归* 直接递归称为方法自身调用自己。间接递归可以A方法调用B方法B方法调用C方法C方法调用A方法* b: 注意事项* 递归一定要有出口, 必须可以让程序停下* 递归次数不能过多* 构造方法,禁止递归 17递归求和计算 * A: 递归求和计算* a: 题目分析* 123...(n-1)n:求1到n的和* 总结规律1到n的和等于1到(n-1)的和再加n* getSum(n-1) n* 递归出口getSum(1) return 1;* b: 案例代码 /** 方法的递归调用* 方法自己调用自己* 适合于,方法中运算的主体不变,但是运行的时候,参与运行的方法参数会变化* 注意:* 递归一定要有出口, 必须可以让程序停下* 递归次数不能过多* 构造方法,禁止递归*/public class DiGuiDemo {public static void main(String[] args) {int sum getSum(3);System.out.println(sum);}/** 计算 123100和 5050* 计算规律:* n(n-1)(n-2)* 100(100-1)(99-1)...1*/public static int getSum(int n){if( n 1)return 1;return n getSum(n-1);}} 18递归求阶乘 * A: 递归求和计算* a: 题目分析* 5!5*4*3*2*1* 5*4!* 4!4*3!* 3!3*2!* 2!2*1!* 1!1* n!n*(n-1)!* 递归出口n*getJieCheng(n-1): getJieCheng(1) return 1;* b: 案例代码/** 方法的递归调用* 方法自己调用自己* 适合于,方法中运算的主体不变,但是运行的时候,参与运行的方法参数会变化* 注意:* 递归一定要有出口, 必须可以让程序停下* 递归次数不能过多* 构造方法,禁止递归*/public class DiGuiDemo {public static void main(String[] args) { System.out.println(getJieCheng(5));}/* * 计算阶乘 5!* 5*4*3*2*1*/public static int getJieCheng(int n){if ( n 1)return 1;return n * getJieCheng(n-1);} } 19递归计算斐波那契数列 * A: 递归计算斐波那契数列* a题目分析* 1 1 2 3 5 8 13 21* 从第三项开始后面的每一项都等于前面两项的和第一项和第二项的值为1作为程序的出口* b: 案例代码/** 方法的递归调用* 方法自己调用自己* 适合于,方法中运算的主体不变,但是运行的时候,参与运行的方法参数会变化* 注意:* 递归一定要有出口, 必须可以让程序停下* 递归次数不能过多* 构造方法,禁止递归*/public class DiGuiDemo {public static void main(String[] args) { System.out.println(getFBNQ(12));}/** 方法递归,计算斐波那契数列* */public static int getFBNQ(int month){if( month 1)return 1;if( month 2)return 1;return getFBNQ(month-1)getFBNQ(month-2);}} 20遍历目录下的所有java文件 * A: 遍历目录下的所有java文件* a: 案例代码public class MyJavaFilter implements FileFilter {public boolean accept(File pathname) {//判断获取的是目录,直接返回trueif(pathname.isDirectory())return true;return pathname.getName().toLowerCase().endsWith(.java);}}/** 遍历目录,获取目录下的所有.java文件* 遍历多级目录,方法递归实现* 遍历的过程中,使用过滤器*/public class FileDemo1 {public static void main(String[] args) {getAllJava(new File(c:\\demo));// new File(c:\\demo).delete();}/** 定义方法,实现遍历指定目录* 获取目录中所有的.java文件*/public static void getAllJava(File dir){//调用File对象方法listFiles()获取,加入过滤器File[] fileArr dir.listFiles(new MyJavaFilter());for(File f : fileArr){//对f路径,判断是不是文件夹if(f.isDirectory()){//递归进入文件夹遍历getAllJava(f);}else{System.out.println(f);}}} 作业测试 1.使用文件名称过滤器筛选将指定文件夹下的小于200K的小文件获取并打印。 2.从键盘接收一个文件夹路径,统计该文件夹大小。 3.从键盘接收一个文件夹路径,删除该文件夹。 4.从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印 例如:
aaa是文件夹,里面有bbb.txt,ccc.txt,ddd.txt这些文件,有eee这样的文件夹,eee中有fff.txt和ggg.txt,打印出层级来
aaabbb.txtccc.txtddd.txt eeefff.txtggg.txt 5.键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如java,txt)作为key, 用个数作为value,放入到map集合中,并用两种方式遍历map集合
例如
doc 的类型的文件有 3 个
java 的类型的文件有 5 个
txt 的类型的文件有 7 个 如果想进一步的交流可以加入我们的QQ群里面有最新的学习资料可以学习。 转载于:https://www.cnblogs.com/wanghui1234/p/9567288.html