如何强制Javapoet创建UTF-8Java源代码?

如何强制Javapoet创建UTF-8Java源代码?,java,javapoet,Java,Javapoet,是否有方法将com.squareup.javapoter.JavaFile写入文件系统,并确保该文件始终使用UTF-8编码 目前我正在使用com.squareup.javapoet.JavaFilewriteTojava.io.File dir,但这使用当前虚拟机的默认编码。查看javapoet的Github页面,您可以使用以下方法: JavaFile.writeTo(PrintStream) 因此,您应该能够使用UTF-8创建打印流,并按如下方式编写文件: PrintStream strea

是否有方法将com.squareup.javapoter.JavaFile写入文件系统,并确保该文件始终使用UTF-8编码


目前我正在使用com.squareup.javapoet.JavaFilewriteTojava.io.File dir,但这使用当前虚拟机的默认编码。

查看javapoet的Github页面,您可以使用以下方法:

JavaFile.writeTo(PrintStream)
因此,您应该能够使用UTF-8创建打印流,并按如下方式编写文件:

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

这不应该在JavaPoter问题跟踪程序中提出吗?这不是一个bug,而是一个简单的问题,因此我不想为此提出问题。但我将提出一个问题,介绍一种使用特定编码创建Java源代码的更简单方法。谢谢。这很好用。尽管如此,它也有缺点,您必须自己命名Java文件并创建所有的包目录。从自述文件中看,这并不是很清楚,但我看到使用了JavaFile.writeToSystem.out,因为这是一个打印流,所以我知道这会起作用。另一种可能的方法是使用JavaFile.toString并手动将结果字符串写入文件。为了方便起见,我将提交一个问题,以引入一个新的writeToFile目录,即字符集编码方法。