2017-06-08 14 views
0

com.squareup.javapoet.JavaFileをファイルシステムに書き込んで、ファイルが常にUTF-8を使用してエンコードされていることを確認する方法はありますか?JavapoetにUTF-8 Javaソースコードを強制的に作成させるにはどうすればいいですか?

現在、私はcom.squareup.javapoet.JavaFile#writeTo(java.io.File dir)を使用していますが、これは現在の仮想マシンのデフォルトのエンコーディングを使用しています。

+0

これはjavapoetの問題追跡ツールで尋ねられませんか? –

+0

バグではありませんが、簡単な質問ですので、問題を提出したくありません。しかし、特定のエンコーディングでJavaソースコードを作成する簡単な方法を導入するための問題を提出します。 – saw303

+0

問題が作成されましたhttps://github.com/square/javapoet/issues/564 – saw303

答えて

1

JavapoetのGitHubのページを見ると、あなたがメソッドを使用することができますが:

JavaFile.writeTo(PrintStream) 

ですから、このようなファイルを書き込むUTF-8ウントを使用してのPrintStreamを作成することができるはずです。

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

https://github.com/square/javapoet/blob/master/README.mdを見ていましたが、それに関するドキュメンテーション。どうもありがとう。これは完璧に動作します。それにもかかわらず、それはJavaファイルに名前をつけて、それ自身パッケージディレクトリをすべて作成しなければならないという欠点があります。 – saw303

+0

READMEからはそれほど明確ではありませんでしたが、JavaFile.writeTo(System.out)が使用されていて、それがPrintStreamなので、これはうまくいくことが分かりました。 もう一つの可能​​な方法は、JavaFile.toString()を使用し、結果のStringをFileに手動で書き込むことです。 –

+1

便宜上、新しい 'writeTo(ファイルディレクトリ、文字セットのエンコード)'メソッドを導入するために問題を提出します。 – saw303

関連する問題