zoukankan      html  css  js  c++  java
  • File

    File


    文件和目录路径名的抽象表示,一般,file:操作文件,directory:目录/文件夹,path:路径

    分隔符

    当在不同系统中路径分割符;:和名称分隔符/是不同的,可以使用File的静态变量来表示以做到系统无关

    public static final String pathSeparator;
    Windows中为;分号,而linux里则为:冒号。这个在win和linux的环境变量的配置中的路径就能看出

    public static final String pathSeparator
    Windows中为,而linux则为/

    相对路径和绝对路径

    绝对路径:以系统的根路径开始的,Windows中就以盘符开始的
    相对路径:Java当前项目的根目录开始的,不是本文件的路径开始的

    File的使用

    创建File对象

    创建File对象,只是把字符串路径封装成File对象,不考虑路径的真假情况,路径可以以文件或文件夹结尾,可以是绝对路径也可以是相对路径,当然路径也可以不实际存在

    File(String pathname)                 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
    File(File parent, String child)        从父抽象路径名和子路径名字符串创建新的 File实例。
    File(String parent, String child)    从父路径名字符串和子路径名字符串创建新的 File实例。
    File(URI uri)                                   通过将给定的 file: URI转换为抽象路径名来创建新的 File实例。
    

    获取File的路径

    获取绝对路径,即使创建时传入的是相对路径,最后也是获取到绝对路径。而getPath()则就是获取的传入的路径

    public String getAbsolutePath()

    获取文件大小

    public long length()
    返回由此抽象路径名表示的文件的长度。 如果此路径名表示目录,则返回值未指定。
    注意文件夹是没有大小的,这里length返回的是文件的大小以字节为单位,如果没有文件就返回0,文件夹也返回0,不是路径的长度

    判断文件和文件夹是否存在

    exists() 判断文件和文件夹是否存在
    isDirectory 判断是否文文件夹/目录
    isFile() 判断是否是文件

    使用File对象创建文件和文件夹

    • 创建文件

    public boolean createNewFile()
    public boolean delete()--对应的就是删除文件或文件夹

    ---当File对象传入的路径(路径在File的构造方法中给出)正确,并且文件不存在时创建文件返回true,如果文件已存在返回false,如果文件路径不存在抛出异常

    • 创建文件夹

    public boolean mkdir()
    public boolean mkdir()--创建多级文件夹

    创建单级文件夹,文件夹存在则不创建返回false,没有文件夹则创建并返回true;如果路径不存在也不会创建并且不会抛出异常并返回false

    目录的遍历

    public String[] list() --返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
    public File[] listFiles()---返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
    list()和listFiles()在File的构造方法路径中的路径不存在或者不是一个目录都会返回null空指针异常

    文件过滤器

    在File对象的String[] list()方法中重载了一个方法:list(FilenameFilter filter),listFiles()也重载了两个方法File[] listFiles(FileFilter filter)和File[] listFiles(FilenameFilter filter)来对文件进行过滤

    • java.io.FileFilter函数接口
      boolean accept(File pathName) 测试指定的抽象路径名是否应包含在路径名列表中。
    • java.io.FilenameFilter函数接口
      boolean accept(File dir,String name) 测试指定的抽象路径名是否应包含在路径名列表中。

    两个接口都没有实现类,需要自己定义实现类并重写过滤方法

    //这里就是在使用File.listFiles()方法是传入一个过滤器,来过滤文件流,使用lambda表达式
    File[] files = dir.listFiles(file -> file.isDirectory() || file.getName().toLowerCase().endsWith(".java"));
    

    本博客为Swagger-Ranger的笔记分享,文章会持续更新
    文中源码地址: https://github.com/Swagger-Ranger
    欢迎交流指正,如有侵权请联系作者确认删除: liufei32@outlook.com

  • 相关阅读:
    wp7HyperlinkButton去掉下划线
    ios文本、键盘、按钮的练习
    CreateCompatibleBitmap 创建透明位图。
    渐变色,颜色由中心点向外扩散。效果不怎么好。
    圆角矩形,圆角矩形填充
    UTF8转GBK
    CButton单选钮注意的地方,自绘影响选择状态。
    关于重写CListCtrl时候 MeasureItem不被调用的问题
    重写CCombobox dropdown风格遇到的遮盖问题。
    重启程序
  • 原文地址:https://www.cnblogs.com/Swagger-Ranger/p/10707410.html
Copyright © 2011-2022 走看看