比较文件内容跨平台

时间:2011-04-14 11:02:25

标签: java unit-testing file-io

我有一个在Windows上创建的文件,因此它有回车符“\ r \ n”。

在测试中使用该文件,将文件的内容与测试期间生成的文件的内容进行比较。测试在Windows上传递,因为生成的文件具有相同的回车。

但测试没有通过Unix / Mac。

它失败,因为生成的文件有换行符,即。只有“\ n”。

任何人都可以建议如何处理这个问题吗?

编辑: 该测试是JUnit(Java)测试。

3 个答案:

答案 0 :(得分:1)

  • 您可以比较逐行阅读的文件
  • 你可以为unix / windows提供两个不同的示例文件

答案 1 :(得分:1)

您可以尝试以下操作以避免逐行阅读

String text = FileUtils.readFileAsString(filename)
                       .replaceAll("(\r\n|\r|\n)", "\n");

用“\ n”替换所有类型的新行

答案 2 :(得分:0)

我最终没有使用真实文件,并且让测试在运行时使用system属性在平台上创建文件以获取平台行终止符。