我正在实现一个命令行的mp3播放器。
我想像这样显示mp3的持续时间
Now Playing :: hello.mp3 Duration :: 1.20 但是当我使用System.out.println时,它会显示
Now Playing :: hello.mp3 Duration :: 1.20
Now Playing :: hello.mp3 Duration :: 1.21
Now Playing :: hello.mp3 Duration :: 1.22
Now Playing :: hello.mp3 Duration :: 1.23
Now Playing :: hello.mp3 Duration :: 1.24
Now Playing :: hello.mp3 Duration :: 1.25
..... 基本上,通过线程更新的持续时间,我想要显示它的单行,我的意思是持续时间必须在单行更新。我已经看过Flushable interface了,但没有拿到。请帮帮我
这是我的帖子
while(p.getPlayer().isComplete() == false){
String bOutput = "\r Duration ::" + (int) ((p.getPlayer().getPosition() / (1000*60)) % 60) + " : " + (int) (p.getPlayer().getPosition() / 1000) % 60;
//p.getBufferedOutputStream().write(bOutput.getBytes());
//p.getBufferedOutputStream().flush();
System.out.println(bOutput);
Thread.sleep(1000);
}发布于 2012-12-15 17:11:01
while(p.getPlayer().isComplete() == false){
String bOutput = "Duration ::" + (int) ((p.getPlayer().getPosition() / (1000*60)) % 60) + " : " + (int) (p.getPlayer().getPosition() / 1000) % 60;
System.out.println(bOutput+"\r");
Thread.sleep(1000);
}这就解决了我的问题。
注意:当我在** CMD Eclipse Console**,和 works上运行它时,在中看不到任何效果
发布于 2012-12-15 16:24:01
很明显,有东西在多次调用println。如果你不想要多行代码,那么修改你的代码,这样它就不会这样做了。
这既不是线程的“错误”,也不是println的“错误”,也与刷新无关。问题出在代码的逻辑上……但是我们不能再多说了,因为你还没有展示给我们看。
https://stackoverflow.com/questions/13890559
复制相似问题