java - 使用java限制文件大小创建

标签 java file size bufferedwriter

我试图限制在我的 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/

相关文章:

css - SquareSpace 自定义 CSS;标题栏

java - 自定义 ArrayAdapter 上的 getFilter() 不起作用

java - android imageview.setBackgroundResource() 不工作

java - 从 MySQL 读取文本文件

c - 为什么下面的代码会显示一个空白链表?

android - 如何在 Google Maps V2 Android 中指定标记上的图标大小

java - JPanel 和 JFrame 大小不变

java - 伪造的 HTTP 获取请求

java - 进行 POST 调用以验证 Microsoft Dynamics CRM 时出现证书错误

Git 看不到新文件,只有文件夹