Passe ta souris au dessus des mots BufferedReader et BufferedWriter de mon message précédent (les liens envoient vers la doc)
Mais sinon, le code que tu montres est un bon point de départ (l'esprit y est, il faut juste l'adapter à ton besoin)
Pour info, les BufferedReader/Writer sont très proches des BufferedInputStream/OutputStream, ce sont des classes qui font a peut près les mêmes choses sauf que les Reader/Writer sont spécialisés dans la manipulation des fichiers texte.
Ex : Lecture d'un fichier image => on utilise un InputStream
Lecture d'un fichier texte => on utilise un Reader