2015-02-10 21 views
0

我在Android的ExternalStorageDirectory()中有一个.txt文件。这个文件一行一行地包含10个句子。我想逐一阅读每个句子。然后在点击每个按钮时在EditText上显示它。我只找到了所有的文件阅读代码。我不想要这个。我怎样才能做到这一点?这里是我的小代码:读取一个txt文件格式外部存储目录由一个通过eclipse Android

enter cod private String Load() { 
    String result = null;; 
    String FILE_NAME = "counter.txt"; 
    //if (isExternalStorageAvailable() && isExternalStorageReadOnly()) { 
     String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + "Records"; 
     File file = new File(baseDir, FILE_NAME); 

     String line = ""; 
     StringBuilder text = new StringBuilder(); 

     try { 
      FileReader fReader = new FileReader(file); 
      BufferedReader bReader = new BufferedReader(fReader); 

      while((line = bReader.readLine()) != null ){ 
       text.append(line+"\n"); 
      } 
      result = String.valueOf(text); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    //} 
    return result; 
} 
+0

你的代码似乎已经在阅读。你还需要什么? – vinitius 2015-02-10 21:49:48

回答

0

所有Load()函数都会读取文件并将其作为字符串返回。从这里,你有几个选择。

1)。 使用String.split('\ n')将结果转换为一个字符串数组,并在单击该按钮时获取下一个值。这里有一个简单的例子:

int counter = 0; 
String file = Load(); 
String[] lines = file.split("\n"); 

button.onClicked() { 
    editText.setText(lines[counter++]); 
} 

2)。 将缓冲读取器声明为类成员,以便您可以在按钮的onClicked()方法内调用readLine()。这样,当有人点击按钮时,它将只读取文件的一行,而不是读取Load()中的整个文件。

+0

非常感谢,它适合我!谢谢。 – Gianna 2015-02-11 18:14:24

相关问题