繁体   English   中英

使用do-while和for循环比较文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM