Class FileUtils

  • All Implemented Interfaces:

    
    public class FileUtils
    
                        
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
      public final static int FILE_SCHEME_LENGTH
    • Constructor Summary

      Constructors 
      Constructor Description
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      static InputStream getFileInputStream(String path) 创建一个指向文件的输入流,即将该文件内容读到内存中
      static Array<byte> getByteFromUri(Uri uri) 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
      static void writeByte(Uri uri, Array<byte> data) 将 byte 数组顺序写入到文件输出流中
      static File convertBitmap2File(Bitmap bm, String dir, String name) 图片转化成文件
      static File copyFile(File src, String path, String name) 复制文件
      static boolean copyFile(String srcPath, String path, String name) 复制文件,仅支持file开头
      static boolean copyFileToInternal(Context context, Uri srcUri, String desPath, String name)
      static boolean copyFile(Context context, Uri srcUri, String desPath)
      static String getFileNameWithPath(String path) 根据文件路径获取文件名
      static Array<byte> file2byte(File file) 获得指定文件的 byte 数组
      static Array<byte> file2byte(Context context, Uri uri)
      static Array<byte> contentFile2byte(Context context, Uri uri) 获得指定文件的 byte 数组,必须是content开头
      static File byte2File(Array<byte> buf, String filePath, String fileName) 根据 byte 数组,生成文件
      static String getCachePath(Context context) 获取缓存存储路径,如 /sdcard/Android/data/<package name>/cache
      static String getFileKey(Message message) 获取媒体消息的key,用于 图片,视频,gif 等消息的 handler
      static String getCachePath(Context context, String dir) 获取缓存存储路径,如 /sdcard/Android/data/<package name>/cache/<dir>
      static String getCacheDirsPath(Context context, String dir) 获取缓存存储路径,如 /sdcard/Android/data/<package name>/cache/<dir>
      static String getTempFilePath(Context context, int messageId) 获取断点续传临时文件存储路径
      static String getTempFilePath(Context context, String id) 获取断点续传临时文件存储路径
      static String getInternalCachePath(Context context, String dir) 获取 app 缓存存储路径 data/data/<package name>/cache/<dir>
      static String getMediaDownloadDir(Context context) 获取媒体文件存储路径
      static String getMediaDownloadDir(Context context, String dir) 获取媒体文件存储路径
      static long getFileSize(File file) 获取指定文件大小
      static void saveFile(String str, String filePath) 把字符串存到指定路径下
      static String getStringFromFile(String path) 获取文件数据
      static void removeFile(String path) 删除文件
      static String getTempFileMD5(Context context, int messageId) 获取文件断点续传 MD5 Key 值, 用来标识正在下载的文件 根据 appKey , userId 和 messageId 做 MD5
      static String getTempFileMD5(Context context, String tag) 获取文件断点续传临时文件名, 用来标识正在下载的文件 根据 appKey , userId 和唯一标识 tag 做 MD5
      static int readPictureDegree(Context context, String path) 读取图片旋转的角度
      static boolean isFileExistsWithUri(Context pContext, Uri pUri) 文件是否存在
      static long getFileLengthWithUri(Context pContext, Uri pUri) 获取文件长度,不存在返回-1
      static boolean isValidateLocalUri(Uri pUri) 文件 Uri Scheme 是否以 file 或者 content 开头
      static boolean uriStartWithFile(Uri pUri) 文件 Uri Scheme 是否以 file 开头且文件 Uri 长度超过 7
      static boolean uriStartWithContent(Uri srcUri) 文件 Uri Scheme 是否以 content 开头
      static String getSuffix(Uri srcUri) 获取Uri后缀
      static String getSuffix(String path) 获取Uri后缀
      static FileInfo getFileInfoByUri(Context context, Uri uri) 通过 uri 获取文件名称,大小,类型
      static FileInfo getFileInfoByFile(File file) 通过 file 获取文件名称,大小,类型
      static String getFileTypeFromInputStream(InputStream inputStream) 从 input 流中获取文件类型
      static String getFileTypeFromByteData(Array<byte> data)
      static InputStream getFileInputStream(Context context, Uri uri)
      static File getExternalCacheDir(Context context) 9.
      static String generateKey()
      static String getJsonOutPath(Context context)
      static String sanitizeFilename(String displayName) 对文件名进行清理,防止路径遍历攻击
      static String getUrlFileName(String url, String fileName)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

    • Method Detail

      • getFileInputStream

         static InputStream getFileInputStream(String path)

        创建一个指向文件的输入流,即将该文件内容读到内存中

        Parameters:
        path - 文件路径
        Returns:

        指向文件的输入流,即将该文件内容读到内存中

      • getByteFromUri

         static Array<byte> getByteFromUri(Uri uri)

        以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。

        Parameters:
        uri - 文件地址
        Returns:

        读取字节流

      • writeByte

         static void writeByte(Uri uri, Array<byte> data)

        将 byte 数组顺序写入到文件输出流中

        Parameters:
        uri - 文件 Uri
        data - byte 数组
      • convertBitmap2File

         static File convertBitmap2File(Bitmap bm, String dir, String name)

        图片转化成文件

        Parameters:
        bm - 图片
        dir - 图片存储路径
        name - 图片名
        Returns:

        文件

      • copyFile

         static File copyFile(File src, String path, String name)

        复制文件

        Parameters:
        src - 源文件
        path - 目标文件路径
        name - 目标文件名
        Returns:

        目标文件

      • copyFile

         static boolean copyFile(String srcPath, String path, String name)

        复制文件,仅支持file开头

        Parameters:
        srcPath - 源文件路径
        path - 目标文件路径
        name - 目标文件名
        Returns:

        返回是否成功拷贝

      • copyFileToInternal

         static boolean copyFileToInternal(Context context, Uri srcUri, String desPath, String name)
        Parameters:
        context - 上下文
        srcUri - file 或 content 开头
        desPath - 包名下存储的路径 "stroage://开头"文件路径(必须为可直接操作包名下路径)
        Returns:

        拷贝到包名下后文件

      • copyFile

         static boolean copyFile(Context context, Uri srcUri, String desPath)
        Parameters:
        context - 上下文
        srcUri - 通过 MediaStore 获取到的 uri_sdk29,"content://开头" 文件路径
        desPath - 包名下存储的路径 "stroage://开头"文件路径(必须为可直接操作包名下路径)
        Returns:

        拷贝到包名下后文件

      • getFileNameWithPath

         static String getFileNameWithPath(String path)

        根据文件路径获取文件名

        Parameters:
        path - 文件路径
        Returns:

        文件名

      • file2byte

         static Array<byte> file2byte(File file)

        获得指定文件的 byte 数组

        Parameters:
        file - 指定文件
        Returns:

        指定文件的 byte 数组

      • contentFile2byte

         static Array<byte> contentFile2byte(Context context, Uri uri)

        获得指定文件的 byte 数组,必须是content开头

        Parameters:
        context - 上下文
        uri - content路径
        Returns:

        指定文件的 byte 数组

      • byte2File

         static File byte2File(Array<byte> buf, String filePath, String fileName)

        根据 byte 数组,生成文件

        Parameters:
        buf - byte 数组
        filePath - 文件存放路径
        fileName - 文件名
        Returns:

        生成的文件

      • getCachePath

         static String getCachePath(Context context)

        获取缓存存储路径,如 /sdcard/Android/data/<package name>/cache

        Parameters:
        context - 传入的 Context
        Returns:

        目录的完整路径,外置存储未加载或出现其他错误时返回空字符串 ""

      • getFileKey

         static String getFileKey(Message message)

        获取媒体消息的key,用于 图片,视频,gif 等消息的 handler

        Parameters:
        message - 消息
        Returns:

        媒体消息的key,用于本地存储

      • getCachePath

         static String getCachePath(Context context, String dir)

        获取缓存存储路径,如 /sdcard/Android/data/<package name>/cache/<dir>

        Parameters:
        context - 传入的 Context
        dir - 自定义目录
        Returns:

        目录的完整路径,外置存储未加载或出现其他错误时返回空字符串 ""

      • getCacheDirsPath

         static String getCacheDirsPath(Context context, String dir)

        获取缓存存储路径,如 /sdcard/Android/data/<package name>/cache/<dir>

        Parameters:
        context - 传入的 Context
        dir - 自定义目录(多级目录)
        Returns:

        目录的完整路径,外置存储未加载或出现其他错误时返回空字符串 ""

      • getTempFilePath

         static String getTempFilePath(Context context, int messageId)

        获取断点续传临时文件存储路径

        Parameters:
        context - 上下文
        messageId - 消息 id
        Returns:

        保存路径

      • getTempFilePath

         static String getTempFilePath(Context context, String id)

        获取断点续传临时文件存储路径

        Parameters:
        context - 上下文
        id - 文件唯一标识
        Returns:

        保存路径

      • getInternalCachePath

         static String getInternalCachePath(Context context, String dir)

        获取 app 缓存存储路径 data/data/<package name>/cache/<dir>

        Parameters:
        context - 传入的 Context
        dir - 自定义目录
        Returns:

        目录的完整路径

      • getMediaDownloadDir

        @Deprecated() static String getMediaDownloadDir(Context context)

        获取媒体文件存储路径

        Parameters:
        context - 上下文
        Returns:

        媒体文件存储路径

      • getMediaDownloadDir

         static String getMediaDownloadDir(Context context, String dir)

        获取媒体文件存储路径

        Parameters:
        context - 上下文
        dir - 自定义目录
        Returns:

        媒体文件存储路径

      • getFileSize

         static long getFileSize(File file)

        获取指定文件大小

        Parameters:
        file - 指定文件
        Returns:

        文件长度

      • saveFile

         static void saveFile(String str, String filePath)

        把字符串存到指定路径下

        Parameters:
        str - 要存储的字符串
        filePath - 指定路径
      • getStringFromFile

         static String getStringFromFile(String path)

        获取文件数据

        Parameters:
        path - 文件路径
        Returns:

        获取文件数据

      • removeFile

         static void removeFile(String path)

        删除文件

        Parameters:
        path - 文件路径
      • getTempFileMD5

         static String getTempFileMD5(Context context, int messageId)

        获取文件断点续传 MD5 Key 值, 用来标识正在下载的文件 根据 appKey , userId 和 messageId 做 MD5

        Parameters:
        context - 上下文
        messageId - 消息 id
        Returns:

        保存路径

      • getTempFileMD5

         static String getTempFileMD5(Context context, String tag)

        获取文件断点续传临时文件名, 用来标识正在下载的文件 根据 appKey , userId 和唯一标识 tag 做 MD5

        Parameters:
        context - 上下文
        tag - 文件唯一标识
        Returns:

        保存路径

      • readPictureDegree

         static int readPictureDegree(Context context, String path)

        读取图片旋转的角度

        Parameters:
        context - 上下文
        path - 图片绝对路径
        Returns:

        degree 旋转的角度

      • isFileExistsWithUri

         static boolean isFileExistsWithUri(Context pContext, Uri pUri)

        文件是否存在

        Parameters:
        pContext - 上下文
        pUri - 文件 Uri
        Returns:

        文件是否存在。true 存在,false 不存在。

      • getFileLengthWithUri

         static long getFileLengthWithUri(Context pContext, Uri pUri)

        获取文件长度,不存在返回-1

        Parameters:
        pContext - 上下文
        pUri - 文件 Uri
        Returns:

        文件存在返回文件长度。

      • isValidateLocalUri

         static boolean isValidateLocalUri(Uri pUri)

        文件 Uri Scheme 是否以 file 或者 content 开头

        Parameters:
        pUri - 文件 Uri
        Returns:

        文件 Uri Scheme 是否以 file 或 content 开头

      • uriStartWithFile

         static boolean uriStartWithFile(Uri pUri)

        文件 Uri Scheme 是否以 file 开头且文件 Uri 长度超过 7

        Parameters:
        pUri - 文件 Uri
        Returns:

        文件 Uri Scheme 是否以 file 开头且文件 Uri 长度超过 7

      • uriStartWithContent

         static boolean uriStartWithContent(Uri srcUri)

        文件 Uri Scheme 是否以 content 开头

        Parameters:
        srcUri - 文件 Uri
        Returns:

        文件 Uri Scheme 是否以 content 开头

      • getSuffix

         static String getSuffix(Uri srcUri)

        获取Uri后缀

        Parameters:
        srcUri - 文件 Uri
        Returns:

        后缀可能为空

      • getSuffix

         static String getSuffix(String path)

        获取Uri后缀

        Parameters:
        path - path
        Returns:

        后缀可能为空

      • getFileInfoByUri

         static FileInfo getFileInfoByUri(Context context, Uri uri)

        通过 uri 获取文件名称,大小,类型

        Parameters:
        context - 上下文
        uri - 支持 content和 File 开头
        Returns:

        ContentDocument 返回文件名称,大小,类型

      • getFileInfoByFile

         static FileInfo getFileInfoByFile(File file)

        通过 file 获取文件名称,大小,类型

        Returns:

        ContentDocument 返回文件名称,大小,类型

      • getFileTypeFromInputStream

         static String getFileTypeFromInputStream(InputStream inputStream)

        从 input 流中获取文件类型

        Parameters:
        inputStream - 输入流
      • getExternalCacheDir

         static File getExternalCacheDir(Context context)

        9.0以下 getExternalCacheDir 有可能出现ArrayIndexOutOfBoundsException异常,需要捕获

      • sanitizeFilename

         static String sanitizeFilename(String displayName)

        对文件名进行清理,防止路径遍历攻击

        Parameters:
        displayName - 文件名
        Returns:

        清理后的文件名

      • getUrlFileName

         static String getUrlFileName(String url, String fileName)