Pour connecter un flot de caractères à un fichier, si la conversion par défaut est appropriée, le plus simple est de recourir directement aux classes FileWriter et FileReader, qui s'emploient de façon analogue à FileOutputStream et FileInputStream.
La classe PrintWriter permet d'écrire sur un flot de sortie des données en les représentant à l'aide de chaînes de caractères Unicode (16 bits), à l'aide des méthodes print et println. Pour bénéficier de ces méthodes, on doit procéder par décoration d'un objet de type Writer :
PrintWriter pw =
new PrintWriter(
new FileWriter("toto"));
...
pw.println("ici, un texte en caractères latins");
On peut également spécifier un codage afin d'écrire des caractères Unicode quelconques sur un fichier :
PrintWriter pw =
new PrintWriter(
new OutputStreamWriter(
new FileOutputStream("toto"),
"UTF8"
));
pw.println("ici, un mot grec : \u039B\u039F\u0393\u039F\u03A3");
Les 5 lettres de ce mot grec sont écrites sur le fichier sous la forme des 10 octets suivants (en notation hexadécimale) : CE 9B CE 9F CE 93 CE 9F CE A3.