com.squareup.javapoet.JavaFile
をファイルシステムに書き込んで、ファイルが常にUTF-8
を使用してエンコードされていることを確認する方法はありますか?JavapoetにUTF-8 Javaソースコードを強制的に作成させるにはどうすればいいですか?
現在、私はcom.squareup.javapoet.JavaFile#writeTo(java.io.File dir)
を使用していますが、これは現在の仮想マシンのデフォルトのエンコーディングを使用しています。
com.squareup.javapoet.JavaFile
をファイルシステムに書き込んで、ファイルが常にUTF-8
を使用してエンコードされていることを確認する方法はありますか?JavapoetにUTF-8 Javaソースコードを強制的に作成させるにはどうすればいいですか?
現在、私はcom.squareup.javapoet.JavaFile#writeTo(java.io.File dir)
を使用していますが、これは現在の仮想マシンのデフォルトのエンコーディングを使用しています。
JavapoetのGitHubのページを見ると、あなたがメソッドを使用することができますが:
JavaFile.writeTo(PrintStream)
ですから、このようなファイルを書き込むUTF-8ウントを使用してのPrintStreamを作成することができるはずです。
PrintStream stream = new PrintStream("YourTargetFile.java", "UTF-8");
yourJavaFileObject.writeTo(stream);
https://github.com/square/javapoet/blob/master/README.mdを見ていましたが、それに関するドキュメンテーション。どうもありがとう。これは完璧に動作します。それにもかかわらず、それはJavaファイルに名前をつけて、それ自身パッケージディレクトリをすべて作成しなければならないという欠点があります。 – saw303
READMEからはそれほど明確ではありませんでしたが、JavaFile.writeTo(System.out)が使用されていて、それがPrintStreamなので、これはうまくいくことが分かりました。 もう一つの可能な方法は、JavaFile.toString()を使用し、結果のStringをFileに手動で書き込むことです。 –
便宜上、新しい 'writeTo(ファイルディレクトリ、文字セットのエンコード)'メソッドを導入するために問題を提出します。 – saw303
これはjavapoetの問題追跡ツールで尋ねられませんか? –
バグではありませんが、簡単な質問ですので、問題を提出したくありません。しかし、特定のエンコーディングでJavaソースコードを作成する簡単な方法を導入するための問題を提出します。 – saw303
問題が作成されましたhttps://github.com/square/javapoet/issues/564 – saw303