我有3D文件解析器,但如果我有一个非常大的文件(大约3 MB)解析西港岛线是非常慢的。 (55秒),的Android的OpenGL-ES 3D文件分析器的工作是很慢
我怎样才能加快步伐?
我有一个简单的解析器:
InputStream fileIn = resources.openRawResource(resourceID);
BufferedReader buffer = new BufferedReader(new InputStreamReader(fileIn));
while ((line = buffer.readLine()) != null) {
StringTokenizer parts = new StringTokenizer(line, " ");
...
等
编辑1
新与AssetManager
AssetManager assetManager = context.getAssets();
InputStream fileIn = null;
try {
fileIn = assetManager.open(resourceID, AssetManager.ACCESS_RANDOM);
} catch (IOException e) {
Log.e("err0", ""+e);
}
BufferedReader buffer = new BufferedReader(new InputStreamReader(fileIn));
代码,这是一个快一点,用3 MB文件,我得到38秒。
感谢, 莱斯利
您好贾斯汀!你可以给我一个示例如何使用字节作为readline字符串?谢谢,Leslie – lacas
这一切都取决于如何写入文件。举个例子,假设你知道一行可能的最大长度是200字节。然后,您可以从文件中一次读取200个字节,并按字节处理数据以寻找换行符来终止您的行。然后你可以保留剩下的字节(比如说20),然后再读取字节以再次填充缓冲区(现在为180)。继续这样做直到处理完整个文件。再次,这只是一个理论,为什么你的解析器很慢。 –
主要思想是避免使用字符串数据,如果你不需要的话。 –