簡體   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