-------android培训、java培训、期待与您交流! ----------
java I/O流体系中有一个重要而又特殊的对象:File。他是用来将文件或者文件夹封装对象的。方便对文件和文件夹的属性进行操作。File对象可以作为参数传递给流的构造函数。
File类提供了灵活多变的构造函数来方便我们使用。我们可以将文件或者文件夹的绝对或者相对地址以字符串的形式传给File的构造函数,例如new File(“a.txt”);也可以new FIle(“c:\\a.txt”);或者new FIle("c:\\","a.txt");这些方法都可以对指定的文件或者文件夹进行封装。
File类还提供了大量的方便的方法。
分别归类如下:
1.用于创建文件或者或者文件夹:
boolean createNewFile();//在指定位置创建文件,如果文件已经存在,则不创建,返回false;和输出流不一样,输出流对象一旦建立文件,如果文件已存在会被覆盖。
boolean mkdir();//创建文件夹,不会创建多级文件夹。如果要创建的文件夹含有多级目录则会返回false,创建失败。应该使用下面的方法。
boolean mkdirs();//创建多级文件夹。
2.删除文件和文件夹
boolean delete();//删除失败返回false,如果文件正在被使用,则删除不了返回false。
void deleteOnExit();//在程序退出时删除指定文件。
3.判断相关的方法
boolean exists();//判断文件或者文件夹是否存在。存在返回true,否则返回false。
boolean isFile();//判断被封装的对象是否是文件对象。
boolean isDirectory();//判断被封装的对象是否是文件夹对象。
4.获取File信息
String getName();//获取名称的方法。
String getAbsolutePath();//获取文件或者文件夹的绝对路径,包含盘符等信息。
getPath();//获得相对路径
getParent();//绝对路径中的父目录,如果获取的是相对路径则返回null,如果相对路径有上一层目录,则该目录就是返回结果。
long lastModified();//返回最后修改的时间,通常用于某个文件或者文件夹是否被修改过。
long length();//返回文件大小。
在操作磁盘上的文件和文件夹通常要用到遍历文件夹的功能。我们通常的做法就是通过递归的方式层层遍历文件夹。
递归要注意:
1.递归的限定条件。必须朝着能够结束递归的方向递归。否则会造成无穷递归导致内存溢出。
2.要注意递归的次数,不能无限次的递归,否则会造成内存溢出。