0

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

1 に答える 1

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() でファイル全体を読み取るのではなく、ファイルの 1 行のみを読み取ります。

于 2015-02-10T22:30:42.987 に答える