优化这段代码,使其结果就显示一个import java.text.SimpleDateFormat; import java.util.Date; class Timer implements Runnable { private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public void run() { while (true) { System.out.print(sdf.format(new Date()) + " "); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } class Watch { public static void main(String[] args) { Thread thread = new Thread(new Timer()); thread.start(); } }
时间: 2024-02-01 13:04:51 浏览: 69
java.util包总结
可以使用Java的System类提供的控制台清屏方法clear(),以及光标移动到开头的方法setCursorPosition(),使得输出结果只显示一行。代码如下:
```
import java.text.SimpleDateFormat;
import java.util.Date;
class Timer implements Runnable {
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public void run() {
while (true) {
System.out.print("\033[H\033[2J"); // 清屏
System.out.flush();
System.out.print(sdf.format(new Date()) + " ");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class Watch {
public static void main(String[] args) {
Thread thread = new Thread(new Timer());
thread.start();
}
}
```
注意:该方法只在Linux和MacOS等Unix系统以及支持ANSI控制字符的Windows终端环境下可用。在一些Windows终端环境下可能无法正常工作。
阅读全文