为什么 Windows 提示符中的重定向运算符会创建忽略换行符的文本?

为什么 Windows 提示符中的重定向运算符会创建忽略换行符的文本?

我尝试使用> and >>Java 类中的\n重定向运算符输出到文本文件,但当。TXT文件打开时记事本来自 Windows 10。这很有趣,因为在迅速的换行工作正常,如果我使用System.out.println("")它在记事本

\n带换行符的类:

class n{

    public static void main(String[] args){

        System.out.print("This\n");
        System.out.print("Should\n");
        System.out.print("Be\n");
        System.out.print("Separated.\n");


    }

}

类使用System.out.println("")

class ln{

    public static void main(String[] args){

        System.out.println("This");
        System.out.println("Should");
        System.out.println("Be");
        System.out.println("Separated.");

    }

}

输出迅速的

迅速的

文本文件中的输出n 类n.txt)以记事本

ThisShouldBeSeparated.

文本文件中的输出类 ln文本文件)以记事本

This
Should
Be
Separated.

上面这两个应该是相等的。

我测试了n 类 民众但这并没有改变结果。

我搜索并找到了如何echo换行,这不是我想要的,我希望重定向的文本文件像迅速的

一个有趣的细节是,当我粘贴来自n.txt在这里 (写一个问题), 在里面微软 Word记事本++或者写字板或者在引用的程序中打开该文件)它“修复”了错误,并且等于类 ln

编辑

我认为这不是重复的,因为当我写这个问题时,我甚至没有想到可能的记事本问题。标题完全不同,所以我回答了我自己的问题,为那些认为问题不是记事本像我之前一样,也许能得到一个很好的解决办法。

如果我错了我会很高兴被纠正。

答案1

在搜索有关换行和文本文件的更多信息时,我发现问题在这里超级用户社区解释了正在发生的事情。

问题不在于迅速的, 是个记事本视窗就我而言是 Windows 10,就另一个问题的作者而言是 Windows 7)不承认这种类型的换行,引用@Paul 回答了我所讨论的问题:

记事本仅识别 CR、LF(0x0d、0x0a),而其他来源可能仅使用 CR 或仅使用 LF。

现在我建议使用作为第一个文本编辑器写字板或者记事本++正常工作。

在里面记事本

记事本

记事本++写字板

记事本++ 写字板

其他可能的解决方案是从记事本,粘贴在记事本++写字板微软 Word或任何可以识别此类换行符的文本编辑器,然后将其复制回来。

欲了解更多信息,请访问问题“记事本忽略换行符”

相关内容