/**
* 删除文件
*
* @param file 文件对象
* @param lineNum 行号
*/
private void removeFile(File file, int lineNum) {
//mode rw [以读、写方式打开指定文件。如果该文件尚不存在,则尝试创建该文件]
try (RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw")) {
//返回文件记录指针的当前位置
long writePosition = randomAccessFile.getFilePointer();
//循环读行
for (int i = 0; i < lineNum; i++) {
String line = randomAccessFile.readLine();
if (StrUtil.isBlank(line)) {
break;
}
}
//记录当前循环了几次后指针所在的位置
long readPosition = randomAccessFile.getFilePointer();
//放字节对象
byte[] data = new byte[1024];
//当前读了几行
int len;
//while 循环读取 把行号赋给len -1结束
while ((len = randomAccessFile.read(data)) != -1) {
//将文件记录指针定位位置
randomAccessFile.seek(writePosition);
//写数据 调用本地方法writeBytes(byte b[], int off, int len)将指定字节数组中的len个字节从 offset off写入此文件。
randomAccessFile.write(data, 0, len);
readPosition += len;
writePosition += len;
randomAccessFile.seek(readPosition);
}
//设置此文件的长度
randomAccessFile.setLength(writePosition);
} catch (IOException e) {
log.error("WriteFileUtils removeFile 出现异常 --->{}", e.getMessage());
}
}
03-08
3403
08-05
2771
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交