2016-03-05 75 views
0

所以基本上我想要做的是讓JProgressBar從0-100%變爲100%,其中100%是包含9999行的完全讀取的.txt文件的話。我的字節數組長度不等於文件.txt文件大小

我想通過存儲一個巨大的字符串分割成字節數組和更新JPBar的字節數組的長度來做到這一點。

令我驚訝的是,JProgressBar停在91%。後來我決定打印出這些值,並意識到文件長度比字節數組長度大10000倍。

有人可以向我解釋爲什麼會出現這種情況,我如何才能正確使用?我意識到我很可能錯過了閱讀和計算角色的概念。代碼片段如下。

謝謝!

bar.setMinimum(0); 
bar.setMaximum((int)file.length()); 

try{ 
    while((check = reader.readLine()) != null){ 

     words = words + check + "\n"; 
     stringCount = words.getBytes(); 
     bar.setValue(stringCount.length); 

    }  
    }catch(Exception e){} 

    System.out.println(stringCount.length); 
    System.out.println(file.length()); 

回答

2

額外的文件內容很可能是Windows風格的行尾的其他部分。 Windows上的文件中的標準行結尾是\r\n,但您的內存字符串僅包含\n。這會累積每行結尾1個字符的差異,並且那些9999行符合您報告的差異。

+0

謝謝!那修好了:) – Nikola

+0

然後把他的答案標記爲正確的 – pczeus

+0

我得等另一分鐘的朋友。 – Nikola

相關問題