【问题标题】:reading a txt file form External Storage Directory by one by eclipse Android通过eclipse Android从外部存储目录中读取一个文本文件
【发布时间】:2015-04-11 02:58:01
【问题描述】:

我在 Android 的 ExternalStorageDirectory() 中有一个 .txt 文件。该文件逐行包含 10 个句子。我想一个一个地读每个句子。然后在每个按钮单击时将其显示在 EditText 上。我只找到了所有文件读取代码。我不想要这个。我怎样才能做到这一点?这是我的小代码:

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;
}

【问题讨论】:

  • 您的代码似乎已经开始阅读了。你还需要什么?

标签: java android eclipse file txtextcontrol


【解决方案1】:

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() 中读取整个文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-01
    • 2012-01-12
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    相关资源
    最近更新 更多