Android从资源读取文件并存储在数组列表中

时间:2012-08-29 04:19:40

标签: java android

我的应用需要从资源文件夹中的多个文件中读取。但我的文件有分隔符$$$和||。文件的结构是这样的。

  

建筑$$$
  所有涉及组装资源和工作的工作    整理形成新的或变更所需的材料    设施。||

     

建筑承包商$$$
  公司或个人    谁已与该组织签订合同履行义务    建设工作。||

以$$$结尾的句子将存储在单独的数组列表中,而句子以||结尾将被存储在单独的数组列表中。 我怎样才能做到这一点?任何样本或示例代码将不胜感激。请注意,这些文件很长。

    BufferedReader br = null;
    try {
        br = new BufferedReader(new InputStreamReader(getAssets().open("c.txt"))); //throwing a FileNotFoundException?
        String word;
        while((word=br.readLine()) != null)
            A_Words_array.add(word); //break txt file into different words, add to wordList
    }
    catch(IOException e) {
        e.printStackTrace();
    }
    finally {
        try {
            br.close(); //stop reading
        }
        catch(IOException ex) {
            ex.printStackTrace();
        }
    }
    String[]words = new String[A_Words_array.size()];
    A_Words_array.toArray(words); //make array of wordList

    for(int i=0;i<words.length; i++)
        Log.i("Read this: ", words[i]);

以上是我现在发现的如何根据结尾分隔符分割句子的代码?

1 个答案:

答案 0 :(得分:0)

假设每个句子在一行中并且它们以$$$或||结束,您可以根据其结尾将行存储在不同的数组中:

List<String> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();
String line;
while (line = br.readLine()) != null) {
    if (line.endsWith("$$$")) {
        list1.add(line);
    } else {
        list2.add(line);
    }
}
String[] dollarlines = list1.toArray(new String[list1.size()]);
String[] verticalLines = list2.toArray(new String[list2.size()]);