注解处理器:从process()方法写入文件

Annotation processor: file writing from the process() method

我写了一个注释处理器,我想将一些信息写入文本文件。在我的 class 中,我扩展了 AbstractProcessor 并覆盖了

public void init(ProcessingEnvironment processingEnv)

public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv)

方法。

init() 方法中,我正在创建一个新的 PrintWriter(例如,这样:writer = new PrintWriter("output.csv", "UTF-8");

我用 process() 方法将一些文本打印到文件中。

问题 是,(当我在不同包中的多个源上使用我的处理器时)文件 (output.csv) 总是在新源被重新创建时重新创建正在处理(因为每次都会创建一个新的 Processor 对象)。这样只有最后处理的源信息进入文本文件,虽然我想从 all 注释方法(来自不同来源)获取信息到 one 文本文件。

这可能对您有帮助:

new PrintWriter(new FileOutputStream("output.csv", true));