java - 在 Linux 和 Windows 上编写 Java 文件时的额外新行

标签 java linux windows ubuntu file-io

我有一个使用 Java 编写的 .txt 文件,它对新行的排列非常具体。当我在 Windows 上编写文件时,这种安排是强制执行的,但是当我在 Ubuntu 上运行相同的代码时,每个应该有一个的地方都有两个新行。有谁知道这可能是什么原因造成的?这是我用来编写的代码:

List<String>toBeWrittenList = new ArrayList<String>();
    for(int x=0; x < finalList.size(); x++){
        toBeWrittenList.add("\n");
        toBeWrittenList.add("==level " + (x+1) +"==");
        for(int y=0; y < finalList.get(x).size();y++){
            if(finalList.get(x).get(y).equals("N"))
                toBeWrittenList.add(y+1 + ". null");
            else
                toBeWrittenList.add(y+1 + ". " + finalList.get(x).get(y));
        }
    }
    try {
        writeSmallTextFile(toBeWrittenList, FILE_NAME3);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

static void writeSmallTextFile(List<String> aLines, String aFileName) throws IOException {
        Path path = Paths.get(aFileName);
        Files.write(path, aLines, ENCODING);
}

最佳答案

我通常使用 PrintWriter 方法 println 来创建一个文本文件。 println 将检查您的操作系统并选择正确的馈送行(\n 或\n\r)。

问题可能存在于 Files.write 中。你是自己写类(class)吗?还是您正在使用第 3 方库?

关于java - 在 Linux 和 Windows 上编写 Java 文件时的额外新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15696622/

相关文章:

java - Maven中的 "pom"包装是什么?

linux - 在 lyx 演示文稿中插入视频剪辑并在 GNU/Linux 中播放

linux - 在 Linux xterm 中将整个文件复制到剪贴板(但不是默认、+ 或 * 注册表)

c++ - 在 Linux 中读取文件的最快方法?

java - 无法从 Firebase 下载照片 - 空白 ImageView

java - 如何在多页中打印一个大的 JPanel

java - 如何从cmd启动使用预编译DLL的java swing应用程序?

c# - C#程序保持不变的错误级别

windows - 使用 Windows 命令行在本地运行 jmeter .jmx 测试给出非法参数异常

java - sbt 中的工作目录