java.io.file()_java IO操作File类

---恢复内容开始---

IO操作

把内存上的数据写到可持久化存储的设备上叫输出(Output)

把持久存储数据的设备写到内存上叫输入(Input)

File类

把文件和文件夹都封装成文件对象

e8786ec199e126d5e4f9c5fa45b519b8.png

File类获取对象

315e2db7d5d2bcab9ea1f0b3c2c16b5d.png

1 importjava.io.File;2

3 public classDemo02 {4

5 public static voidmain(String[] args) {6 File f = new File("E:\\java学习\\6月5号");7 System.out.println(f.getAbsolutePath());8

9 }

返回了

E:\\java学习\\6月5号

importjava.io.File;public classDemo02 {public static voidmain(String[] args) {

File f= new File("E:\\java学习\\6月5号");

System.out.println(f.getName());

}

返回了6月5号

1 importjava.io.File;2

3 public classDemo02 {4

5 public static voidmain(String[] args) {6 File f = new File("E:\\java学习\\6月15号");7 System.out.println(f.length());8

9 }

获取了文件的大小 4096

对文件和文件夹的操作

5e85a146004d7f9f6c950502086b8b22.png

public static void main(String[] args) throwsIOException {

File f= new File("E:\\java学习\\6月15号\\b");

f.createNewFile();

}

会创建一个空文本

290a1e2d3c22fbcbc32a5285bfc6b4e3.png

看一下这个文件或者目录在不在,返回boolean

1 public static void main(String[] args) throwsIOException {2 File f = new File("E:\\java学习\\6月15号\\b");3 System.out.println(f.exists());4

5 }

1 public classDemo02 {2

3 public static void main(String[] args) throwsIOException {4 File f = new File("E:\\java学习\\6月15号\\b\\a");5 f.mkdirs();6

7 }

创建多级目录文件夹,用mkdirs

listFiles()方法

a0a623ee573e868b559440d2eb3cb3bc.png

1 public static void main(String[] args) throwsIOException {2 File f = new File("E:\\java学习\\6月15号");3 String[] str =f.list();4 for(String s:str){5 System.out.println(s);6 }7

8 }

显示此目录中文件和文件夹

462e3437d886c10b2c888915bbc54b8e.png

1 public static void main(String[] args) throwsIOException {2 File f = new File("E:\\java学习\\6月15号");3 File[] str =f.listFiles();4 for(File s:str){5 System.out.println(s);6 }7

8 }显示路径和文件,文件夹

644b73b87c8f03516587d8068fa633f4.png

注意:在获取指定目录下的文件或者文件夹时必须满足下面两个条件

1,指定的目录必须是存在的,

2,指定的必须是目录。否则容易引发返回数组为null,出现NullPointerException

文件过滤器

获得一个目录下的所有文件再进行筛选

a10de508dd0ec187664a7bcc5214d772.png

aef0921c41c268948d4fc8484b701a43.png

packagecom.orcale.demo01;importjava.io.File;importjava.io.FileFilter;public class MFile implementsFileFilter{

过滤器方法public booleanaccept(File pathname) {//TODO 自动生成的方法存根

String str =pathname.getName();boolean flag = str.endsWith(".png"); 把获取到的文件对象结尾是.png的放到数组中去returnflag;

}

}

1 public static voidmethod02(File f){2 File[] f1 = f.listFiles(newMFile());3 for(File f2:f1){4 System.out.println(f2);5 }6 }

8 }

递归

自己调用自己,分为2种,直接递归和间接递归

直接递归就是自己调用自己的方法

间接递归是,A调用B,B调用C

计算1-n之间的乘积,使用递归完成

public static int method3(intn){if(n==1){return 1;

}return n*method3(n-1);

}

}

输出结果:System.out.println(method3(5));

注意:递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。

在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。

1 public static voidmethod04(File f){2 File[] f1 =f.listFiles();3 for(File f2:f1){4 if(f2.getName().endsWith("docx")){ 先判定结尾,让递归一次调用5 System.out.println(f2);6 }7 if(f2.isDirectory()){8 method04(f2);9 }10 }11 }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值