所以我有一个相当大的(4mb)txt与单语词典的数据。因为单词的解释被分成多行,所以我无法逐行读取。另一方面,我有“###”分隔符,我可以使用。
我的问题是:在java / android中将此文本加载到地图中的最有效方法是什么?
答案 0 :(得分:0)
将文件加载到单个字符串并在其上使用split("###")
方法。它为您提供由分隔符拆分的字符串数组。 4 Mb可以立即将其加载到内存中。
byte[] encoded = Files.readAllBytes(Paths.get(filePath));
String fileContents = new String(encoded, encoding);
String[] lines = fileContents.split("###");
更新:不确定您是否可以使用该代码在Android上读取文件 - 它适用于Java SE 7.在Android上可以使用如下代码:
FileInputStream fis;
fis = openFileInput(filePath);
StringBuffer fileContent = new StringBuffer("");
byte[] buffer = new byte[1024];
while ((n = fis.read(buffer)) != -1)
{
fileContent.append(new String(buffer, 0, n));
}
String[] lines = fileContent.toString().split("###");