簡體   English   中英

從文本文件讀取記錄時,android更新進度欄

[英]android update progress bar while reading records from a text file

我正在嘗試從存儲在內部存儲器中的文本文件中讀取記錄時,找到更新進度欄的最佳方法。 在我的活動片段中,我使用一個按鈕來加載進度對話框,其中包含要更新的進度條。

問題是,如果文本文件具有超過2000條記錄(每行1條記錄),我是否應該在加載記錄之前計算文本文件中的行數,並使用該值來估算進度條的完成百分比? 還是有一種更優雅的方式來做到這一點?

進度條的准確性不是很關鍵,而做出響應更重要。 我只是抓住文件的大小,並隨着字節讀取/文件大小更新進度條。 讀取整個文件以找出其記錄數可能會非常昂貴,並且不會為您帶來太大的收益。

如果您想知道文件的大小(以行為單位),並且該文件沒有Long.MAX_VALUE (即9223372036854775807)這行,則可以使用以下方法:

LineNumberReader  lnr = new LineNumberReader(new FileReader(new File("File1")));  
lnr.skip(Long.MAX_VALUE);  
System.out.println(lnr.getLineNumber());

(摘自: Java文件中的行數

如何使用文件大小並計算每次讀取的字節數呢?

int sizeInBytes = file.length();
int currentBytes = 0;

//READ A LINE
currentBytes += line.length();
updateProgress((currentBytes/sizeInBytes)*100);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM