您的位置 首页 java

IO篇-File(JAVA)

File类是java提供类来让你去访问文件、文件属性和文件系统。File访问文件的具体实现是由java虚拟机(jvm)来帮你实现,所以后面在源码分析的时候,你会看到很多调用native关键字来标识的jvm的本地方法。后面在做jvm的章节会有具体讲到。

入门案例

这里不做File类的源码分析,因为分析到fs对象的时候,会找不到具体的实现,因为fs有些核心的实现是jvm的本地方法中体现的,所以这里只会做File类的一些使用。这里多说一句为啥说java是可以跨平台的,

这里多说一句为啥说java是可以跨平台的,在这里也有小体现。

 class DefaultFileSystem {

    /**
     * 这里你会看到,这个是适用于Unix平台的,
     * 因为我在输出这篇文章的时候用的mac-unix系统
     * Return the FileSystem object for Unix-based platform.
     */
    public static FileSystem getFileSystem() {
        return new UnixFileSystem();
    }
}  

而在windows版本的

 class DefaultFileSystem {

    /**
     * Return the FileSystem object for Windows platform.
     * 这是适用windows平台的
     */
    public static FileSystem getFileSystem() {
        return new WinNTFileSystem();
    }
}  

常用方法使用案例

 //getName获取文件名称  

getParent:获取上级路径

getParentFile:获取上级文件;

isDirectory:是否是文件目录,也可以说是文件夹

getPath:获取文件的当前路径

isAbsolute:是否是绝对路径

 getAbsolutePath:获取文件的绝对路径  
 getAbsoluteFile:获取文件  
 getCanonicalPath:相对路径  
 canRead:文件是否可读(文件是否有读权限)  
 canWrite:文件是否可写(文件是否有写权限)  
 exists:文件是否存在  
 isFile:是否是个文件,如下图,这里和上面的isDirectory是有区别的,
因为parentFile本身就是个目录,所以这里返回false  

 isHidden:是否是隐藏文件  
 delete:直接删除一个文件  
 deleteOnExit:File并没有直接删除,⽽是在虚拟机正常运⾏结束后才会删除。  
 list:如果File不是个目录的话,会返回null,如果是目录的话,就会返回目录下所有文件的路径  
 listFiles:如果File不是个目录的话,会返回null,
如果是目录的话,就会返回目录下所有文件的路径,所以这里用的时候需要做判空处理  
 mkdir:创建目录  
 mkdirs:创建多级目录  

总结

File类如果需要做源码分析的话,请留言,等整理完基础知识后,会录一个视频详细讲解。因为视频带来的学习效果比文字还要好。

喜欢的同学,可以点赞、关注+收藏,后期还会推出其他框架源码分析。

如果有需要补充的地方,留言区见。

文章来源:智云一二三科技

文章标题:IO篇-File(JAVA)

文章地址:https://www.zhihuclub.com/181825.shtml

关于作者: 智云科技

热门文章

网站地图