我找到这段代码是为了创建一个特定大小的文件:
import java.io.*;
class Test {
public static void main(String args[]) {
try {
RandomAccessFile f = new RandomAccessFile("t", "rw");
f.setLength(1024 * 1024 * 1024);
} catch (Exception e) {
System.err.println(e);
}
}
}
这给了我 1GB,但我想要 7GB,所以我做了:
import java.io.*;
class Test {
public static void main(String args[]) {
try {
RandomAccessFile f = new RandomAccessFile("t", "rw");
f.setLength(1024 * 1024 * 1024 * 7);
} catch (Exception e) {
System.err.println(e);
}
}
}
但我得到:
java.io.IOException: 试图将文件指针移动到文件开头之前
有人知道该怎么办吗?
最佳答案
7GB(以字节为单位)超出了 int
的 32 位大小。因此它将溢出为负数。
所以你需要让它变长:
f.setLength(1024l * 1024 * 1024 * 7);
关于java - 尝试在 java 上创建 7 GB 的文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24183526/