gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 01:54:25 30 4
gpt4 key购买 nike

所以我需要编写一个代码来调整文本、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();
}
}

output

最佳答案

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

只需使用具有特定迭代次数的循环。请记住在finally子句中关闭编写器,或者使用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());
}

关于java - 写入文件直到限制大小为1474560(软盘),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54961794/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com