Class FileTools

java.lang.Object
com.luna.common.file.FileTools

public class FileTools extends Object
Author:
Luna
  • Constructor Details

    • FileTools

      public FileTools()
  • Method Details

    • getTmpDirPath

      public static String getTmpDirPath()
      获取临时文件路径(绝对路径)
      Returns:
      临时文件路径
      Since:
      4.0.6
    • getTmpDir

      public static File getTmpDir()
      获取临时文件目录
      Returns:
      临时文件目录
      Since:
      4.0.6
    • getUserHomePath

      public static String getUserHomePath()
      获取用户路径(绝对路径)
      Returns:
      用户路径
      Since:
      4.0.6
    • getUserHomeDir

      public static File getUserHomeDir()
      获取用户目录
      Returns:
      用户目录
      Since:
      4.0.6
    • readAllLines

      public static List<String> readAllLines(String fileName)
      读取文件所有内容
      Parameters:
      fileName - 文件路径带文件名
      Returns:
      List
    • deleteIfExists

      public static void deleteIfExists(String file)
      删除文件或空目录
      Parameters:
      file - 文件目录 或者 文件名
    • isExists

      public static boolean isExists(String fileName)
      判断一个文件是否存在
      Parameters:
      fileName - 文件路径
      Returns:
      boolean
    • notExists

      public static boolean notExists(String fileName)
      判断一个文件是否存在
      Parameters:
      fileName - 文件路径
      Returns:
      boolean
    • write

      public static void write(byte[] bytes, String fileName)
      字节写入文件
      Parameters:
      bytes - 字节数组
      fileName - 文件路径
    • write

      public static File write(InputStream in, File file, boolean isCloseIn) throws IOException
      将流的内容写入文件
      Parameters:
      in - 输入流,不关闭
      isCloseIn - 是否关闭输入流
      Returns:
      dest
      Throws:
      IOException - IO异常
      Since:
      5.5.2
    • write

      public static File write(InputStream in, String file, boolean isCloseIn) throws IOException
      将流的内容写入文件
      Parameters:
      in - 输入流,不关闭
      isCloseIn - 是否关闭输入流
      Returns:
      dest
      Throws:
      IOException - IO异常
      Since:
      5.5.2
    • write

      public static void write(String content, String fileName)
      字符串写入文件
      Parameters:
      fileName - 文件路径
      content - 文本内容
      Throws:
      IOException - 写入异常
    • read

      public static byte[] read(String fileName)
      文件读取字节
      Parameters:
      fileName - 文件路径
      Returns:
      字节数组
    • count

      public static long count(String filePath)
      计算文件中行数
      Parameters:
      filePath - 文件地址
      Returns:
      long 行数
      Throws:
      RuntimeException
    • read

      public static List<String> read(String filePath, int skip, int row)
    • download

      public static void download(String url, String file)
      下载文件

      若文件已存在,覆盖

      有异常时抛出异常

      Parameters:
      url - 网络地址
      file - 文件地址
    • downloadWithRetry

      public static void downloadWithRetry(String url, String file, int maxRetry)
      下载文件,失败在优先次数内重试
      Parameters:
      url - 网络路径
      file - 保存文件地址
      maxRetry - 重试次数
    • writeStringToFile

      public static void writeStringToFile(String path, String content)
      写入文件
      Parameters:
      path - 文件路径
      content - 写入内容
    • createDirectory

      public static void createDirectory(String pathDir)
      路径创建文件夹
      Parameters:
      pathDir - 文件夹路径
    • writeStringToFile

      public static void writeStringToFile(String path, String content, Charset destCharset, boolean override)
      写入文件
      Parameters:
      path - 文件路径
      content - 文件内容
      override - 不存在是否创建
    • writeStringToFile

      public static void writeStringToFile(File file, String content, Charset destCharset, boolean override)
      写入文件
      Parameters:
      file - 文件路径
      content - 文件内容
      override - 不存在是否创建
    • writeStringToFile

      public static void writeStringToFile(File file, String content, Charset destCharset)
      写入文件 不存在抛出异常
      Parameters:
      file - 文件路径
      content - 文件内容
      destCharset - 编码格式
    • readFileToString

      public static String readFileToString(String path)
      读取文件
      Parameters:
      path - 文件全路径
    • readFileToString

      public static String readFileToString(String path, Charset destCharset)
      读取文件
      Parameters:
      path - 文件全路径
      destCharset - 文件编码
    • readFileToString

      public static String readFileToString(File file, Charset destCharset)
      读取文件
      Parameters:
      file - 文件
      destCharset - 文件编码
    • rename

      public static File rename(File file, String newName, boolean isOverride)
      修改文件或目录的文件名,不变更路径,只是简单修改文件名,不保留扩展名。
       FileUtil.rename(file, "aaa.png", true) xx/xx.png =》xx/aaa.png
       
      Parameters:
      file - 被修改的文件
      newName - 新的文件名,如需扩展名,需自行在此参数加上,原文件名的扩展名不会被保留
      isOverride - 是否覆盖目标文件
      Returns:
      目标文件
      Since:
      5.3.6
    • rename

      public static File rename(File file, String newName, boolean isRetainExt, boolean isOverride)
      修改文件或目录的文件名,不变更路径,只是简单修改文件名
      重命名有两种模式:
      1、isRetainExt为true时,保留原扩展名:
       FileUtil.rename(file, "aaa", true) xx/xx.png =》xx/aaa.png
       

      2、isRetainExt为false时,不保留原扩展名,需要在newName中

       FileUtil.rename(file, "aaa.jpg", false) xx/xx.png =》xx/aaa.jpg
       
      Parameters:
      file - 被修改的文件
      newName - 新的文件名,包括扩展名
      isRetainExt - 是否保留原文件的扩展名,如果保留,则newName不需要加扩展名
      isOverride - 是否覆盖目标文件
      Returns:
      目标文件
      Since:
      3.0.9
      See Also:
    • rename

      public static Path rename(Path path, String newName, boolean isOverride)
      修改文件或目录的文件名,不变更路径,只是简单修改文件名
       FileUtil.rename(file, "aaa.jpg", false) xx/xx.png =》xx/aaa.jpg
       
      Parameters:
      path - 被修改的文件
      newName - 新的文件名,包括扩展名
      isOverride - 是否覆盖目标文件
      Returns:
      目标文件Path
      Since:
      5.4.1
    • move

      public static Path move(Path src, Path target, boolean isOverride)
      移动文件或目录
      当目标是目录时,会将源文件或文件夹整体移动至目标目录下
      例如:move("/usr/aaa", "/usr/bbb")结果为:"/usr/bbb/aaa"
      Parameters:
      src - 源文件或目录路径
      target - 目标路径,如果为目录,则移动到此目录下
      isOverride - 是否覆盖目标文件
      Returns:
      目标文件Path
      Since:
      5.5.1
    • cleanDirectory

      public static void cleanDirectory(String path)
      清空目录下所有文件
      Parameters:
      path - 目录路径
    • cleanDirectory

      public static void cleanDirectory(String path, boolean parent)
      清空目录下所有文件
      Parameters:
      path - 目录路径
      parent - 路径为文件时,是否从父路径清除
    • cleanDirectory

      public static void cleanDirectory(File file, boolean parent)
      清空目录下所有文件
      Parameters:
      file - 文件系统
      parent - 路径为文件时,是否从父路径清除
    • getName

      public static String getName(Path path)
      获取Path文件名
      Parameters:
      path - Path
      Returns:
      文件名
      Since:
      5.7.15
    • getOutputStream

      public static BufferedOutputStream getOutputStream(File file)
      获得一个输出流对象
      Parameters:
      file - 文件
      Returns:
      输出流对象
      Throws:
      IOException - IO异常
    • touch

      public static File touch(File file) throws IOException
      创建文件及其父目录,如果这个文件存在,直接返回这个文件
      此方法不对File对象类型做判断,如果File不存在,无法判断其类型
      Parameters:
      file - 文件对象
      Returns:
      文件,若路径为null,返回null
      Throws:
      IOException - IO异常
    • touch

      public static File touch(String path)
      创建文件及其父目录,如果这个文件存在,直接返回这个文件
      此方法不对File对象类型做判断,如果File不存在,无法判断其类型
      Parameters:
      path - 相对ClassPath的目录或者绝对路径目录,使用POSIX风格
      Returns:
      文件,若路径为null,返回null
      Throws:
      IORuntimeException - IO异常
    • file

      public static File file(String path)
      创建File对象,自动识别相对或绝对路径,相对路径将自动从ClassPath下寻找
      Parameters:
      path - 相对ClassPath的目录或者绝对路径目录
      Returns:
      File
    • getInputStream

      public static BufferedInputStream getInputStream(File file)
      获得输入流
      Parameters:
      file - 文件
      Returns:
      输入流
      Throws:
      IOException - 文件未找到
    • getWriter

      public static BufferedWriter getWriter(File file, Charset charset, boolean isAppend)
      获得一个带缓存的写入对象
      Parameters:
      isAppend - 是否追加
      Returns:
      BufferedReader对象
      Throws:
      IOException - IO异常
    • getReader

      public static BufferedReader getReader(File file, Charset charset)
      获得一个文件读取器
      Parameters:
      file - 文件
      charset - 字符集
      Returns:
      BufferedReader对象
      Throws:
      IORuntimeException - IO异常