JAVA提高篇(7)--File类对象及常用操作方法
版权声明:本文为博主原创文章,未经博主允许不得转载。
一、 文件、相对路径与绝对路径
1.文件
(1)标准文件:就像图片,音乐文件等。
(2)目录文件:也就是平常所说的文件夹。
(3)虚拟内存文件:系统在运行程序时生成的临时性文件。
2.文件的路径
(1)相对路径:相对于某一文件的路径,形象地说是把两文件的绝对路径相同的部分砍掉,剩下的就是相对路径
如:
A文件是"D:\MyDocuments\StudySample\src\cn\xmh",
B文件是"D:\MyDocuments\StudySample\src\netjava\cjl",
则B相对A的路径是"\netjava\cjl";
(2)绝度路径:从磁盘根目录算起的路径名
如:"G:\TDDOWNLOAD\数据结构"
3.关于系统路径分隔符
在Windows中,使用反斜杠“\”作为路径分割符,比如“c:\test”,但是Java中反斜杠表示转义,所以需要用“C:\\test”在程序中来表示路径。还可以使用“C:/test”进行路径的表示,这种表示方法在linux中也适用。
同时也可以使用File类中定义的常量separator来代替路径分割符,这样在各个系统中都可以使用。
如File file = new File("c:" + File.separator + "test.txt”);
单独的separater表示根的意思,如果在根下创建文件,相当于在程序路径的根路径下创建文件。
二、File类对象及常用操作方法
1.最常用的一种,根据字符串型的路径名创建文件对象
在整个IO包中,唯一表示与文件本身有关的类就是File类。我们可以用File类创建文件对象,并对文件对象进行各种操作,
publicFile(String pathname)实例化File类的时候,必须设置好路径
示例:
注意:在使用File类指定路径的时候一定要注意操作系统间的差异,尽量使用separator进行分割
2.文件对象操作方法
要想使用File类,则首先要观察File类的方法,此类的常用方法如下所示:
上面表格中只列出了常用方法的的一部分,下面再分类列举出常用的方法:
创建方法
(1)boolean createNewFile() //用来创建标准文件的方法
使用File file = new File(path)只是指定了文件创建的路径,但是文件还没有生成,另外如果路径不存在,那么文件将不会创建成功
(2)boolean mkdir() //创建目录:根据File对象的名字(路径)创建一个目录(文件夹),如果是相对目录,则新建的目录在当前目录下(3)boolean mkdirs() //创建多级目录:如果File对象名字有多级目录,则可以调用该方法一次性创建多级目录
mkdirs()可以建立多级文件夹(目录), mkdir()只能创建一层目录
如:
Filefile = new File("c:/aa");
file.mkdir(); //这样可以在c:/下创建aa目录
假如有多层目录,则不能用mkdir创建,如:
Filefile = new File("c:/aa/bb");
file.mkdir() //这样创建不了.
这样不会建立任何目录, 因为找不到/tmp/one/two目录, 结果返回false
应该改为:mkdirs()
删除方法
(1)boolean delete()
(2)boolean deleteOnExit() //文件使用完成后删除
判断方法
(1)boolean canExecute() //判断文件是否可执行
(2)boolean canRead() //判断文件是否可读
(3)boolean canWrite() //判断文件是否可写
(4)boolean exists() //判断文件是否存在
(5)boolean isDirectory() //判断File对象指向的文件是否为目录,返回一个boolean类型的值,true或者false
(6)boolean isFile() //判断File对象指向的文件是否是标准文件,返回一个boolean类型的值,true或者false
(7)boolean isHidden()
(8)boolean isAbsolute() //判断是否是绝对路径 文件不存在也能判断
获取方法
(1)StringgetName() //获取文件的名字(不带文件的路径),返回的是String类型的值
(2)String getPath()
(3)String getAbsolutePath()
(4)String getParent() //如果没有父目录返回null
(5)long lastModified() //获取最后一次修改的时间
(6)long length() //得到File对象指向文件的长度,以字节计算,返回一个长整形的值(long)
注意:在系统中,文件夹(目录)的大小为零,也就是不占用空间,使用length()时返回的是0
(7)boolean renameTo(File f) //重新命名此抽象名称指定的文件
f-- 新抽象路径名的抽象路径名,如果重命名成功此方法返回true,否则返回false
(8)File[] listRoots() //返回抽象路径名数组,表示在目录中此抽象路径名表示,满足指定过滤器的文件和目录。
(9)String[] list()
(10)String[] list(FilenameFilter filter)
各个方法的简单实现如下:
三、File类常用操作实例
四、file.getPath()getAbsolutePath() getCanonicalPath()区别
可以参考的文章:File类的getPath、getAbsolutePath和getCanonicalPath的不同