Я хочу сохранить историю на SDCard, !! Только один раз создать объект файла, Ошибка истории - PullRequest
0 голосов
/ 31 декабря 2011

Я хочу сохранить историю на SDCard, которая набрана на edittext.но мой код генерирует новый объект File каждый раз, когда я вызываю.когда я в коде сеанса работает, но вызвать «createExternalStorageFile ()», предыдущая история ушла, тот же файл новая история.Как я могу исправить?

public void createExternalStorageFile() {
    try {
            File  myFile = new File("/sdcard/" + tmp );

            if ( !myFile.exists()  ){
                myFile.createNewFile();
            } else{

            FileOutputStream fOut = new FileOutputStream(myFile);
            OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
            myOutWriter.append(messageHistoryText.getText());
            myOutWriter.close();
            fOut.close();

            }

    } catch (IOException e) {
    Log.e(TAG, "Could not write file " + e.getMessage());
    }

}

1 Ответ

0 голосов
/ 31 декабря 2011

Проверьте код ниже, он работает для меня:

public void createExternalStorageFile() {
    if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
        String fileName = "out.txt"; 
        File root = Environment.getExternalStorageDirectory();
        File file = new File(root, fileName);
        if (file.canWrite()) {
            try {
                boolean append = file.exists();
                FileWriter outFile = new FileWriter(file, append);
                PrintWriter logFileWriter = new PrintWriter(outFile);
                logFileWriter.append(messageHistoryText.getText());
                logFileWriter.flush();
                logFileWriter.close();
                outFile.close();
            } catch (IOException e) {
                Log.e("LOGGER", "" + e.getMessage());
                return;
            }
        } else {
            Log.e("LOGGER", "Couldn't write log file!");
        }
    } else {
        Log.e("LOGGER", "External storage is not mounted!");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...