博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Day22]IO(File、递归)
阅读量:5080 次
发布时间:2019-06-12

本文共 1977 字,大约阅读时间需要 6 分钟。

1.File

  1.1 IO概述

  (1)当需要把内存中的数据存储到持久化设备上的这个动作称为输出(写)Output操作

  (2)当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作

  1.2 File类-Java中把文件或目录(文件夹)都封装成File对象

  1.3 File类的构造函数

  (1)File(File parent,String child)  根据parent抽象路径名和child路径名字符串创建一个新File实例

  (2)File(String pathname)   通过将给定路径名字符串转换为抽象路径名来创建一个新File实例

  (3)File(String parent,String child)  根据parent路径字符串和child路径名字符串创建一个新File案例

  1.4 File类的获取

  (1)String  getAbsolutePath()  返回此抽象路径名的绝对路径名字符串

  (2)String  getName()  返回由此抽象路径名表示的文件或目录的名称

  (3)String  getPath()  将此抽象路径名转换为一个路径名字符串

  (4)long  length()  返回由此抽象路径名表示的文件的长度

  1.5 文件和文件夹的创建删除等

  (1)boolean createNewFile()  当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件

  (2)boolean delete()  删除此抽象路径名表示的文件或目录

  (3)boolean exists()     测试此抽象路径名表示的文件或目录是否存在

  (4)boolean isDirectory()  测试此抽象路径名表示的文件是否是一个目录

  (5)boolean isFile()  测试此抽象路径名表示的文件是否是一个标准文件

  (6)boolean mkdir()  创建此抽象路径名指定的目录

  1.6 listFiles()方法

  (1)String[]   list()  返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录

  (2)File[]  listFiles()  返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件

  (3)采用上述两方法时,要求指定的目录必须是存在的,指定的必须是目录,否则容易引发返回数组为null,出现NullPointerException

  1.7 文件过滤器

  (1)File[]   listFiles(FilenameFilter filter)  返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录

    接口FilenameFilter:实现此接口的类实例可用于过滤器文件名

  (2)boolean  accept(File dir,String name)  测试指定文件是否应该包含在某一个文件列表中

  (3)File[]   listFiles(FileFilter filter)  返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录

    接口FileFilter:用于抽象路径名的过滤器

  (4)boolean  accept(File  pathname)  测试指定抽象路径名是否应该包含在某一个文件列表中

  (5)FilenameFilter过滤器和FileFilter过滤器的区别:

    FilenameFilter过滤器中的accept方法接受两个参数,一个当前文件或文件夹所在的路径,一个是当前文件或文件夹对象的名称。

    FileFilter 过滤器中的accept方法接受一个参数,这个参数就当前文件或文件夹对象

    当我们需要过滤文件名称时就可以使用FilenameFilter这个过滤器,当我们想对当前文件或文件夹进行过滤,就可以使用FileFilter ,比如需要当前目录下的所有文件夹,就可以使用FileFilter 过滤器。

 

2. 递归-在当前方法内调用自己的这种现象

  2.1  概述

  (1)分类-直接递归和间接递归

    直接递归称为方法自身调用自己。间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法

  (2)递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。

  

转载于:https://www.cnblogs.com/ERFishing/p/10755161.html

你可能感兴趣的文章
页面中公用的全选按钮,单选按钮组件的编写
查看>>
java笔记--用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程
查看>>
BZOJ 1047 HAOI2007 理想的正方形 单调队列
查看>>
各种语言推断是否是手机设备
查看>>
这个看起来有点简单!--------实验吧
查看>>
PHP count down
查看>>
JVM参数调优:Eclipse启动实践
查看>>
(旧笔记搬家)struts.xml中单独页面跳转的配置
查看>>
不定期周末福利:数据结构与算法学习书单
查看>>
strlen函数
查看>>
python的列表与shell的数组
查看>>
关于TFS2010使用常见问题
查看>>
软件工程团队作业3
查看>>
python标准库——queue模块 的queue类(单向队列)
查看>>
火狐、谷歌、IE关于document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题...
查看>>
深入理解JVM读书笔记--字节码执行引擎
查看>>
vue-搜索功能-实时监听搜索框的输入,N毫秒请求一次数据
查看>>
批处理 windows 服务的安装与卸载
查看>>
React文档翻译 (快速入门)
查看>>
nodejs fs路径
查看>>