当前位置: 代码迷 >> java >> 写入文件直到限制大小为1474560(软盘)
  详细解决方案

写入文件直到限制大小为1474560(软盘)

热度:41   发布时间:2023-07-25 19:17:27.0

所以我需要编写一个代码,使文本,pdf,jpg,...的大小达到或等于1474560(软盘的大小)。问题是如何进行此限制,以便writeFile停止直到1474560大小。

void newFileParser(String initialPath, String finalPath){
        try{
            FileWriter writeFile = new FileWriter(finalPath,true);
            File newfile = new File(finalPath);

            while(newfile.length()  < 1474560){
                writeFile.write("0\n");
            }
            writeFile.close();
            if(newfile.length() <= 1474560){
                System.out.println("New file is done");
            }
            System.out.println("The size of the NewFile: " + newfile.length());
        }
        catch (IOException e){
            System.out.println("An error occurred");
            e.printStackTrace();
        }
    }

您使用FileWriter缓冲输出。 这意味着newFile.length()可能不返回您写入的字节数,而是返回当前刷新到磁盘的字节数。

只需使用具有特定迭代次数的循环即可。 并记住要在finally子句中关闭writer,或者使用try-with-resources ,如下所示:

void newFileParser(String initialPath, String finalPath) {
    File newfile = new File(finalPath);
    long initialLength = 0;
    if (newfile.exists()) {
        initialLength = newfile.length();
    }
    try (FileWriter writeFile = new FileWriter(finalPath, true)) {
        for (int i = 0; i < 1474560 - initialLength; i++) {
            writeFile.write(0);
        }
    }
    catch (IOException e) {
        System.out.println("An error occurred");
        e.printStackTrace();
    }
    System.out.println("The size of the NewFile: " + newfile.length());
}
  相关解决方案