![](/img/trans.png)
[英]RandomAccessFile.setLength much slower on Java 10 (Centos)
[英]Alternative to RandomAccessFile.setLength()
如果下划线文件系统不支持RandomAccessFile.setLength(..)
操作,那么Java
是否有任何等效的文件操作,例如,写入空内容直到达到特定大小?
提前致谢。
增大大小可以非常简单地完成:
File file = new File(filename);
long destSize = 1000000;
long orgSize = file.length();
if (destiSize > orgSize) {
long diff = destSize - orgSize;
try (FileOutputStream fos = new FileOutputStream(file, true)) {
byte[] buf = new byte[4096];
while (diff > 0) {
int len = (int) Math.min(buf.length, diff);
fos.write(buf, 0, len);
diff -= len;
}
}
}
截断比较困难,因为据我所知,在RandomAccessFile
或其他类中没有方法。 “最简单”的方法是创建一个新文件,将原始数据复制到该文件,直到达到destSize
,删除旧文件并将新文件重命名为旧文件的名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.