[英]comparing files using a do-while and for loops
首先,我要开放一个更好的方法来解决此问题。 我已经尝试了几种不同的方法,但是我还是没有。
情况是有2个文件夹的文件。 每天都会自动从另一个来源下载文件夹1中的文件。 需要执行的操作是通过第二个程序,处理新文件,然后将最终结果添加到第二个文件夹中。
我的方法是使用几个列表数组,并比较每个列表中的文件。 然后,即使由于某种原因该程序关闭了几天,它仍然可以赶上处理文件的速度。 但是,比较文件无法正常工作,而且我遇到了错误。 两个列表中的文件都以儒略格式的日期命名,因此应该可以进行比较。 这是代码:
for (int i = 0; i < files.size(); i++) {
file = files.get(i);
String fileDOY = file.substring(4, 7);
int fileDOYint = Integer.parseInt(fileDOY);
}
boolean x = false;
ArrayList<String> dest = destin(name);
int j = 0;
do {
String destination = dest.get(j);
String dayDest = destination.substring(8, 10);
int dayInt = Integer.parseInt(dayDest);
if (dayInt == fileDOYint) {
x = true;
}
j++;
} while ((j < (dest.size() - 1)) || !x);
if (!x) {
System.out.println("work " + file);
}
输出显示除错误以外的任何内容。 当我在最后一个if语句中更改变量以在true时进行处理时,它将一直工作到丢失文件然后出错为止。 因此,它似乎在循环中正常工作,但是没有达到最后的if语句。 该错误指示“ do”开始后第一行出现问题。
更改您的||
在您do while
&&
} while ((j < (dest.size() - 1)) && !x);
如果从未找到fileDOYint
,则循环将继续进行下去,直到获得越界异常,无论j
是什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.