【发布时间】:2017-03-03 05:07:25
【问题描述】:
我正在通过Java 的简单备份和恢复课程开展一个学校项目。它有两种方法,一种用于备份,一种用于恢复,将文件分解为由程序确定的大小块,并使用恢复从这些块中重建文件。
具体来说,我卡在备份部分:
我想将文件拆分为大小等于 partSize 的小块,并创建名为 filename.1, filename.2, etc 的输出文件。然后返回一个包含创建的计数文件的整数。
这是我的代码:
public static int backup(String filename, double partSize) throws Exception {
BufferedInputStream input = new BufferedInputStream(new FileInputStream(filename));
int splitFileSize = (int) (partSize * 1024 * 1024);
int numberOfPieces = (input.available() / splitFileSize) + 1;
String fn = "filename.";
int i = 1;
int b = 0;
BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(fn + i));
while (numberOfPieces > 0) {
output.write(input.read());
b++;
if (b == splitFileSize) {
output.close();
i++;
numberOfPieces--;
output = new BufferedOutputStream(new FileOutputStream(fn + i));
}
}
output.close();
input.close();
System.out.println("Number of files created: ");
return i;
}
注意:在测试中,我认为它陷入了无限循环。知道为什么吗?
谢谢!感谢您为使事情更清晰而进行的编辑!
【问题讨论】:
-
你尝试调试了吗?
-
不,老实说 Eclipse 中的调试对我来说很难掌握。
-
这是您作为新程序员将获得的最重要的技能之一。不如现在就开始吧。
-
是的,感谢您让我大开眼界。我实际上完全忘记了它,我必须复习它。