Class FileUtils
-
- All Implemented Interfaces:
public class FileUtils
-
-
Field Summary
Fields Modifier and Type Field Description public final static int
FILE_SCHEME_LENGTH
-
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)
-
-
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
- 文件 Uridata
- 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
- 传入的 Contextdir
- 自定义目录- Returns:
目录的完整路径,外置存储未加载或出现其他错误时返回空字符串 ""
-
getCacheDirsPath
static String getCacheDirsPath(Context context, String dir)
获取缓存存储路径,如
/sdcard/Android/data/<package name>/cache/<dir>
- Parameters:
context
- 传入的 Contextdir
- 自定义目录(多级目录)- 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
- 传入的 Contextdir
- 自定义目录- 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
- 输入流
-
getFileTypeFromByteData
static String getFileTypeFromByteData(Array<byte> data)
-
getFileInputStream
static InputStream getFileInputStream(Context context, Uri uri)
-
getExternalCacheDir
static File getExternalCacheDir(Context context)
9.0以下 getExternalCacheDir 有可能出现ArrayIndexOutOfBoundsException异常,需要捕获
-
generateKey
static String generateKey()
-
getJsonOutPath
static String getJsonOutPath(Context context)
-
sanitizeFilename
static String sanitizeFilename(String displayName)
对文件名进行清理,防止路径遍历攻击
- Parameters:
displayName
- 文件名- Returns:
清理后的文件名
-
getUrlFileName
static String getUrlFileName(String url, String fileName)
-
-
-
-