我试图限制在我的 java 应用程序中创建一个文件的大小。为此,我制作了这个示例代码,我声明了一个 32 字节的变量长度,启动 WriteOnFile 方法循环它直到 32 字节。问题是,无论我在 FILE_SIZE 上设置的值(更高或更低),下载文件总是带有 400kb - 这意味着我的代码可以工作,因为原始文件是 200Mb 但有一些逻辑错误。还有另一种方法可以做到这一点吗?因为我是根据这篇文章How to limit the file size in Java到目前为止还没有发现更好的
我想知道这是否与 bufferedwriter 有关系......
提前感谢您的帮助
public static final byte FILE_SIZE = 32;
private static void WriteOnFile(BufferedWriter writer, String crawlingNode){
try {
while(file.length()<FILE_SIZE){
writer.write(crawlingNode);
System.out.println(file.length());
}
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "Failed to write URL Node");
e.printStackTrace();
}
}
最佳答案
我只是尝试了一下,通过直接限制 BufferedWriter 的写入方法,我可以写入 32 字节大的文件:
writer.write(crawlingNode, 0, 32);
通过该调用,仅将前 32 个字符写入文件。由于我的编码是UTF-8,这意味着每个字符占用一个字节,所以我的输出文件的大小只有32字节。仅写入 16 个字符会产生 16 个字节的文件,依此类推。
所以也许你可以使用它而无需实现其他一些大东西。
编辑:
如果您的字符串少于 32 个字符,则使用以下调用:
writer.write(crawlingNode, 0, crawlingNode.length);
关于java - 使用java限制文件大小创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17746114/