我可以使用System.setOut(...)
将输出重定向到文件或其他输出流,但如果我这样做:
System.out.print("\rTesting")
System.out.print("\rHello world!")
然后在终端上我只会看到"Hello world!“最后,但是如果我写到一个文件,我会打印出所有的字符,并且我只想得到"Hello world!“
我可以编写一个自定义的OutputStream来做这件事,但是我想像我的终端一样处理一些事情,比如处理像"\033[2K“这样的奇怪的转义序列。我尝试过使用cat
、echo
和tee
并重定向到一个文件,但它们都提供了完整的字符序列。
特定于平台的解决方案很好(尽管理想情况下,它至少可以在任何合理的Linux发行版上运行)。我甚至可以使用bash命令或其他可以让我这样做的东西。
发布于 2018-07-01 01:05:26
这里发生的事情是您正在使用CR (\r)而不是LF (\n)。在您的例子中,这意味着您首先打印第1行,然后一直跳到左侧,但是您没有向下跳过一行,结果是第一行消失在第二行之后。
https://stackoverflow.com/questions/51114651
复制相似问题