android从文本文件中读取记录时更新进度条

时间:2013-09-15 08:39:47

标签: java android file-io progress-bar

我正在尝试在从内部存储中存储的文本文件中读取记录时找到更新进度条的最佳方法。在我的活动片段中,我使用一个按钮来加载一个进度条,其中包含一个要更新的进度条。

问题是如果文本文件有超过2000条记录(每行1条记录),我应该在加载记录之前计算文本文件中的行数,并使用此值来估计完成的百分比。进度条?或者有更优雅的方式吗?

3 个答案:

答案 0 :(得分:0)

进度条的准确性并不重要,反应更为重要。我只是抓取文件的大小并将进度条更新为字节读取/文件大小。读取整个文件来计算其记录数可能会非常昂贵,并且不会给你带来太大的好处。

答案 1 :(得分:0)

如果您想知道文件的大小(以行为单位),并且没有更多的行 Long.MAX_VALUE (即9223372036854775807),您可以使用此方法:< / p>

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

(摘自:Number of lines in a file in Java

答案 2 :(得分:0)

如何使用文件大小并计算每次读取的字节数?

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

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