ANSI FileUtils.writeLines,ANSI格式,新行为CR LF

时间:2016-07-14 12:56:22

标签: java linux

我想用JAVA写文件

  • 编码:ANSI
  • 新行:CR LF

示例:

FileUtils.writeLines(new File(baseFolder.getAbsolutePath() + File.separatorChar + filename), data);

我正在使用Apache FileUtils.writeLines,但它始终位于UTF-8而不是ANSI,新行位于LF而不是CR LF

服务器Linux而非Windows

1 个答案:

答案 0 :(得分:3)

使用正确顺序的参数调用writeLines的适当重载:

public static void writeLines(File file,
          String encoding,
          Collection<?> lines,
          String lineEnding)
                   throws IOException

e.g。

FileUtils.writeLines(
    new File(baseFolder.getAbsolutePath(), filename),
    "Cp1252",
    data,
    "\r\n");

请注意,根据this answer,Windows ANSI实际上并未在Java中调用Cp1252

您将编码作为最后一个参数传递给this overload,这实际上是行结束参数。

public static void writeLines(File file,
          Collection<?> lines,
          String lineEnding)
                   throws IOException