如何加快读取大型OBJ(文本)文件?

时间:2014-12-22 11:48:20

标签: java android bufferedreader wavefront

我正在使用我在网络上找到的OBJ Loader库,我想研究加速它。

它的工作原理是逐行读取.OBJ文件(它基本上是一个带有数字行的文本文件)

我有一个12mb的OBJ文件,相当于大约400,000行。足以说明,尝试逐行阅读需要永远。

有没有办法加快速度?它使用BufferedReader读取文件(存储在我的资产文件夹中)

以下是图书馆的链接:click me

1 个答案:

答案 0 :(得分:0)

只是一个想法:在获取文件后,您可以先使用File类获取文件的大小:

File file = new File(sdcard,"sample.txt");
long size = file.length();

返回的大小以字节为单位,因此,将文件大小分成相当大数量的块,例如5,10,20 e.t.c.为每个块指定并保存字节范围。创建与上面创建的每个块相同大小的字节数组,然后" assign"每个块到一个单独的工作线程,它应该使用read(缓冲区,偏移量,长度)方法将其块读入其对应的字符数组,即read" length"每个块的字符进入数组"缓冲区"从数组索引开始"偏移"。您必须将字节转换为字符。然后将所有数组连接在一起以获得最终的完整文件内容。插入检查块大小,以便每个线程不与其他边界重叠。同样,这只是一个想法,希望它在实际实施时能够发挥作用。