Comment lire et écrire en UTF-8 sur disque sur Android?

Je ne peut pas lire et écrire des caractères étendus (les caractères accentués français, par exemple) vers un fichier texte à l'aide de la norme InputStreamReader méthodes indiquées dans l'API Android exemples. Quand j'ai lu le fichier à l'aide de:

InputStreamReader tmp = new InputStreamReader(in);
BufferedReader reader = new BufferedReader(tmp);
String str;
while ((str = reader.readLine()) != null) {
...

la chaîne lue est tronquée à l'étendue des personnages plutôt qu'à la fin-de-ligne. La deuxième moitié de la chaîne de puis vient sur la ligne suivante. Je suppose que j'ai besoin d'enregistrer mes données en UTF-8, mais je ne trouve pas d'exemples, et je suis nouveau sur Java.

Quelqu'un peut-il me donner un exemple ou un lien vers la documentation pertinente?

C'est en fait un Java question.
Est-il général Java? Si vous utilisez openFileOutput à écrire à l'espace données privées sur Android, il n'y a pas de constructeur avec un charset option: developer.android.com/reference/android/content/...

OriginalL'auteur Rob Kent | 2010-04-29