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.