如何从android中的assets / name.txt文件中的特定行开始

时间:2014-05-13 07:08:55

标签: android inputstream bufferedreader assets

我在资源文件夹(assets / question.txt)中的txt文件中占用了10行,从下面的代码中我可以从assets文件夹中的txt文件的开头逐行获取。但我想从4行的txt文件开始。请帮忙。

BufferedReader reader_ques;
        try {
            reader_ques = new BufferedReader(new InputStreamReader(getAssets().open("question.txt")));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

try {
            line_q = reader_ques.readLine();

        } catch (IOException e) {
            e.printStackTrace();
        }

        if (line_q != null) 
        {           
            question_tv.setText(line_q);
}

2 个答案:

答案 0 :(得分:1)

最简单的方法是阅读它,忽略它们。例如:

   try {
      for(int i=0 ;i < 4; i++) {
         reader_ques.readLine();
      }
      while ((line_q = reader_ques.readLine()) != null) {
            // do something with line_q
       }


    } catch (IOException e) {
        e.printStackTrace();
    }

或者您可以拥有一个StringList:

ArrayList<String> fileContent = new ArrayList<String>();
 try {
       while ((line_q = reader_ques.readLine()) != null) {
               fileContent.add(line_q);
        }
 }

在第二种情况下,您在ArrayList的索引0处拥有该文件的第一行,依此类推

如果您想要第5个字符串,那么

String myContent = fileContent.get(5)

答案 1 :(得分:0)

String line = FileUtils.readLines(file).get(lineNumber); 

试试这个..

如果您有bufferReader,请尝试按照

LineIterator lineIterator = IOUtils.lineIterator(reader_ques);
 for (int lineNumber = 0; lineIterator .hasNext(); lineNumber++) {
    String line = (String) lineIterator .next();
    if (lineNumber == expectedLineNumber) {
        return line;
    }
 }

要使用上面的代码,您需要使用此库 - http://commons.apache.org/proper/commons-io/download_io.cgi

或者这 - &gt; http://www.motorlogy.com/apache//commons/io/binaries/commons-io-2.4-bin.zip