通过编辑pom在Maven项目中编码Java文件

时间:2013-11-27 14:34:43

标签: java maven encoding pom.xml

我需要指定我的Java应用程序在运行时创建的File对象以特定的编码格式(即UTF-8)保存。 我读here时应该在启动JVM时在运行时指定编码。

由于我正在开发Maven项目,我可以设置pom.xml文件来指定编码吗?如果是,怎么样?

3 个答案:

答案 0 :(得分:1)

如果您是通过Java Code创建文件,那么

创建FileOutputStream。然后,您可以将其包装在OutputStreamWriter中,这允许您在构造函数中传递编码。

然后你可以把你的数据写到那里。试试这个:

FileOutputStream fos = new FileOutputStream("test.out");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
Writer out = new BufferedWriter(osw);
...
out.write(ch);
...
out.close();

答案 1 :(得分:1)

由于您要设置运行时编码:否,您不能单独通过maven执行此操作,因为它只会修改构建时行为。

由于指定了要求并且可能不太可能改变,我可以考虑两个选项:

  1. 在实例化Writer

  2. 时指定正确的编码
  3. 使用System.setProperty("file.encoding","UTF-8")为您的应用指定全局编码

  4. 我建议1.因为它可以为您提供更好的控制,并且不会影响在同一个VM中运行的其他代码。您可以将其转换为配置文件中的某些元素,而不是对编码进行硬编码 - 如果您使用maven生成它,则可以通过修改pom轻松切换编码。

答案 2 :(得分:0)

要设置项目编码,您可以在pom.xml中以这种方式执行

<project>
  ...
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  ...
</project>

如果您想为运行时创建的文件设置编码,据我所知,在Maven配置中提供无选项。您遇到的链接有使用UTF-8创建文件的方法。