有没有办法在不删除先前在 Java 中输出的文本的情况下再次键入同一行打印文本
Is there a way to type of the same line of printed text again without deleting the text that was previously outputted in Java
我一直在想办法在不删除你刚刚写的文本的情况下编辑已经打印出来的文本行。
我认为解决这个问题的方法是通过执行 \r 并每次重新打印编码来“编辑”它。
例如,如果我打印出来
()
但是后来我想给它加上“嗨”,它会插入它成为
(“嗨”)
如果有人知道答案,如果您能回复帮助我,那就太好了,非常感谢。
这取决于您的终端。
如果您的终端句柄 ANSI escape sequences,下面的程序将打印 EDCBA
。如果没有,它将打印:
AAAAA
BBBB
CCC
DD
E
Xterm 有效。
public class Test {
public static void main(String[] args) {
System.out.println("AAAAA");
System.out.print("3[1A");
System.out.println("BBBB");
System.out.print("3[1A");
System.out.println("CCC");
System.out.print("3[1A");
System.out.println("DD");
System.out.print("3[1A");
System.out.println("E");
}
}
这不会在上一行中插入新文本,因此您需要在 in-memory 缓冲区中执行这些操作并刷新整行。
查看 this question 了解更多可能支持更多终端的库。
我可能误解了你的问题,但你可以多次使用 System.out.print()
在行尾添加一些内容。
我一直在想办法在不删除你刚刚写的文本的情况下编辑已经打印出来的文本行。
我认为解决这个问题的方法是通过执行 \r 并每次重新打印编码来“编辑”它。
例如,如果我打印出来
()
但是后来我想给它加上“嗨”,它会插入它成为
(“嗨”)
如果有人知道答案,如果您能回复帮助我,那就太好了,非常感谢。
这取决于您的终端。
如果您的终端句柄 ANSI escape sequences,下面的程序将打印 EDCBA
。如果没有,它将打印:
AAAAA
BBBB
CCC
DD
E
Xterm 有效。
public class Test {
public static void main(String[] args) {
System.out.println("AAAAA");
System.out.print("3[1A");
System.out.println("BBBB");
System.out.print("3[1A");
System.out.println("CCC");
System.out.print("3[1A");
System.out.println("DD");
System.out.print("3[1A");
System.out.println("E");
}
}
这不会在上一行中插入新文本,因此您需要在 in-memory 缓冲区中执行这些操作并刷新整行。
查看 this question 了解更多可能支持更多终端的库。
我可能误解了你的问题,但你可以多次使用 System.out.print()
在行尾添加一些内容。