2017-06-08 2 views
0

Est-il possible d'écrire un com.squareup.javapoet.JavaFile au système de fichiers et assurez-vous que le fichier est codé en utilisant toujours UTF-8?Comment forcer Javapoet à créer du code source Java UTF-8?

Actuellement, je me sers com.squareup.javapoet.JavaFile#writeTo(java.io.File dir) mais utilise l'encodage par défaut de la machine virtuelle en cours.

+0

Si pas être demandé dans le suivi des problèmes javapoet? –

+0

Ce n'est pas un bogue mais une question simple donc je ne veux pas faire de problème. Mais je vais déposer un problème pour introduire un moyen plus simple de créer du code source Java avec un encodage spécifique. – saw303

+0

Problème créé https://github.com/square/javapoet/issues/564 – saw303

Répondre

1

regardant le Github-Page Javapoet, vous pouvez utiliser la méthode:

JavaFile.writeTo(PrintStream) 

donc vous devriez être en mesure de créer un PrintStream en utilisant UTF-8 und écrire le fichier comme ceci:

PrintStream stream = new PrintStream("YourTargetFile.java", "UTF-8"); 
yourJavaFileObject.writeTo(stream); 
+0

Je regardais le https://github.com/square/javapoet/blob/master/README.md mais je n'ai pas réussi à trouver un documentation à ce sujet. Merci beaucoup. Cela fonctionne parfaitement. Néanmoins, il a l'inconvénient, que vous devez nommer le fichier Java et créer vous-même tous les répertoires du paquet. – saw303

+0

Ce n'était pas vraiment clair à partir du README, mais j'ai vu que JavaFile.writeTo (System.out) était utilisé et comme c'est un PrintStream, je savais que cela fonctionnerait. Une autre façon possible serait l'utilisation de JavaFile.toString() et écrire la chaîne résultante dans un fichier manuellement. –

+1

Je vais déposer un problème pour introduire un nouveau 'writeTo (répertoire de fichiers, codage Charset)' pour plus de commodité. – saw303