Package com.gitee.apanlh.util.file
Class FileCheck
- java.lang.Object
-
- com.gitee.apanlh.util.file.FileCheck
-
- All Implemented Interfaces:
AutoCloseable
public class FileCheck extends Object implements AutoCloseable
文件检查器提供文件的读写检查、文件锁控制、元信息获取等功能
提实现了
AutoCloseable接口,支持 try-with-resources 自动释放资源提所有公共方法均会进行状态校验,确保在文件未关闭时操作
提加锁方法通过
LockExecutors实现线程安全(同一实例内互斥),文件锁本身为进程级别,跨进程仍有效- Since:
- 2.0.4
- Author:
- Pan
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()关闭文件并释放所有相关资源booleanexists()判断文件是否存在(检查的是底层文件,可能已被外部修改)StringgetName()获取文件名StringgetPath()获取文件路径booleanisExecutable()判断文件是否可执行(对于普通文件)booleanisLocked()判断当前实例是否持有文件锁booleanisReadable()判断文件是否可读booleanisWritable()判断文件是否可写longlastModified()获取文件最后修改时间(毫秒数)voidlock()尝试获取文件独占锁,阻塞直到获得锁或发生错误longsize()获取文件大小(字节数)booleantryLock()尝试获取文件独占锁,非阻塞,立即返回voidunlock()释放文件锁
-
-
-
Constructor Detail
-
FileCheck
public FileCheck(File file, String mode)
构造文件检查器- Parameters:
file- 文件对象,不能为 nullmode- 打开模式,常用 "r"(只读)或 "rw"(读写),不能为空- Throws:
NotFoundException- 如果文件不存在且模式需要读取时抛出IORuntimeException- 如果打开文件失败IllegalArgumentException- 如果参数非法
-
-
Method Detail
-
isReadable
public boolean isReadable()
判断文件是否可读基于文件系统权限和打开模式判断
- Returns:
- boolean true表示可读
- Throws:
IORuntimeException- 如果文件已关闭
-
isWritable
public boolean isWritable()
判断文件是否可写基于文件系统权限和打开模式判断
- Returns:
- boolean true表示可写
- Throws:
IORuntimeException- 如果文件已关闭
-
isExecutable
public boolean isExecutable()
判断文件是否可执行(对于普通文件)- Returns:
- boolean true表示可执行
- Throws:
IORuntimeException- 如果文件已关闭
-
size
public long size()
获取文件大小(字节数)- Returns:
- long 文件大小
- Throws:
IORuntimeException- 如果读取失败或文件已关闭
-
lastModified
public long lastModified()
获取文件最后修改时间(毫秒数)- Returns:
- long 最后修改时间戳
- Throws:
IORuntimeException- 如果文件已关闭
-
lock
public void lock()
尝试获取文件独占锁,阻塞直到获得锁或发生错误如果当前实例已经持有锁,则直接返回(不重复加锁)该方法通过
LockExecutors保证线程安全- Throws:
IORuntimeException- 如果获取锁失败或文件已关闭
-
tryLock
public boolean tryLock()
尝试获取文件独占锁,非阻塞,立即返回- Returns:
- boolean true表示成功获取锁,false 表示锁已被其他进程持有
- Throws:
IORuntimeException- 如果尝试锁失败或文件已关闭
-
unlock
public void unlock()
释放文件锁如果当前未持有锁,则直接返回
- Throws:
IORuntimeException- 如果释放锁失败
-
isLocked
public boolean isLocked()
判断当前实例是否持有文件锁- Returns:
- boolean true表示持有锁
-
close
public void close()
关闭文件并释放所有相关资源如果持有锁,会自动释放 该方法可被多次调用,但只有第一次有效
- Specified by:
closein interfaceAutoCloseable- Throws:
IORuntimeException- 如果关闭文件失败
-
getPath
public String getPath()
获取文件路径- Returns:
- String 绝对路径
-
getName
public String getName()
获取文件名- Returns:
- String 文件名
-
exists
public boolean exists()
判断文件是否存在(检查的是底层文件,可能已被外部修改)- Returns:
- boolean true表示存在
-
-