嗨,你好。
下面我们一起学习文件及目录。
文件或目录呢是我们操作系统里面最常用的一些这个存储的机制。
那我们在Java那个io包里面呢可以对它进行处理 那这里面呢它也包括文件处理的一些类。
最基本的类呢就是File这个类,File里面呢它可以
给一些路径,文件名或者是路径名再加文件名 都可以得到这个对象。值得注意的是
Jave里面将这个目录,或者平时我们在windows里面也叫文件夹
或者更专业的名称叫directory 它都当成文件来处理,也就是说文件夹也是File
也是文件,只不过是特殊的文件而已。所以它
提供了这些文件管理以及目录管理的方法,比如最重要的就是
这个包括我们把一个目录也当成new一个File
所以然后呢你看再把这个 File里面呢又加上一个文件名,它又当成一个File
所以它提供的实践是对文件和目录管理的
功能。那这个类呢它有一些对名字的操作,比如说得到名字、得到路径以及呢更名
操作。还有一些呢对它的测试操作,包括呢判断它是否存在
然后呢是否读,可读,可写,判断它是文件还是一个目录 等等。还有判断呢
它是不是绝对路径。另外呢我们获取 常规的这些信息呢,包括它的修改的时间
然后它的长度,还有一些特殊操作,比如说删除,更名啊删除啊
另外目录操作最重要的是建立目录mkdir(),然后还有列出目录list()列出目录
也就是列出这个目录下面所有文件,所以也就是
这个类呢几乎把我们常见的这个文件的操作都包含了
另外呢还有一个比较特殊的叫RandomAccessFile类。我们以前提到过呢就是
Java里面更多的是把它当成任何一个文件当成流来处理 但是呢它也可以当成传统的就是
所谓的随机存取文件。所谓什么叫随机存取文件 就是我任意指到一个文件,指到任何一个位置我都能读取它。
那么也就是在这里面就RandomAccessFile 它里面最重要的一个seek定位,我们就可以呢
相当于C语言的里面的文件 那个位置,一下指到某个地方,定位到某个地方。
然后我们再可以去读它,比如说读一个整数啊
等等。这个类呢有点类似用C语言的那个文件
下面我们看一个例子呢就是列出所有的文件。
最核心的呢就是我们说的用了文件,它既包括普通的文件也包括呢目录
同时有一个list呢,它可以呢列出它下面又有哪些目录。
另外呢我们目录下面又有目录,所以我们要使用递归。
我们看看这个代码。请看这里,我们先看看运行效果。
你看它这里呢 把我们这个目录下面的
所有的目录以及子目录全都列出来了。所以我们这个有个关键函数叫做ListFiles
然后迭它的是一个File对象,这个File对象呢是某一个文件夹。
好,我们现在看看这个主要的函数。先判断它是否存在,如果不存在什么也不在。
如果它不是子目录呢,也不做,也不做。那么对于这样一个目录呢
我们可以用list的方法,它得到的呢是一个file式的file,这是一个字符串- 的数组。
对这样一个列出所有的目录实际上它包含了这个目录下面的文件
或子目录,所以我们这里呢又new了一个file对象, 是用原先的这个目录,以及呢当前这个文件名
就得那个file对象。那这个file对象我们判断一下 它是不是文件,如果是文件呢我们把它的名字或长度显示出来。
如果不是的话,那我们要做的事情是什么?我们要做的事情是,就是
再一次调这个ListFiles 用这个子目录再次去调它,所以我们在这里呢得到的相当于是什么呢
就递归的调用。递归呢也就是ListFiles里面呢又调ListFiles
只不过呢这里面呢是一个子目录咯。这是典型的递归调用。