当前位置: 首页 > 面试题库 >

使用Java写入控制台窗口中的相同位置

严宸
2023-03-14
问题内容

我想在控制台窗口中的同一位置写入一个字符。

我想写的字符是/ - \ _。我可以显示一些微调器,以显示进度或加载情况。

但是,如何将字符写到同一位置?否则,您将得到类似这样的结果/-\_/-\_/-\


问题答案:

使用Java
6,您可以使用Console来执行以下操作:

class Main {
    public static void main(String[] args) throws InterruptedException {
        String[] spinner = new String[] {"\u0008/", "\u0008-", "\u0008\\", "\u0008|" };
        Console console = System.console();
        console.printf("|");
        for (int i = 0; i < 1000; i++) {
            Thread.sleep(150);
            console.printf("%s", spinner[i % spinner.length]);
        }
    }
}

\u0008是特殊的退格字符。打印将删除行上的最后一个字符。通过开始打印|,然后\u0008在所有其他字符之前添加,您将获得微调功能。

请注意,这可能并非与所有控制台都100%兼容(并且System.console()可以返回null)。

还要注意,您不必一定要使用console类,因为将序列打印到标准输出通常也一样。



 类似资料:
  • 问题内容: 我是python的新手,正在编写一些脚本来自动从FTP服务器等下载文件。我想显示下载进度,但是我希望它保持不变,例如: 输出: 正在下载文件FooFile.txt [47%] 我正在尝试避免这样的事情: 我应该怎么做呢? 复制 : 如何在命令行应用程序的当前行上打印? 问题答案: 您还可以使用回车符:

  • 问题内容: 在阅读有关Java I / O的知识时,我意识到可以通过两种方式写入标准输出。 以下是同时使用这两种技术的代码段 相对于其他使用,是否有任何性能优势? 问题答案: 一个快速的Google透露了Coderanch上的一个线程很有用。 还有其他几种进行控制台编写的方法,但是除了编写更少的代码外,使用一种或另一种似乎没有真正的好处,而且创建新的PrintWriter对象最终会占用更多的内存。

  • 问题内容: 有什么办法告诉log4j将其日志写入文件和控制台?谢谢,有我的财产: 问题答案: 您的root记录器定义有点混乱。请参阅log4j文档。 这是标准的Java属性文件,这意味着将行视为键=值对。您的第二行覆盖了第一行,这说明了为什么在附加程序上看不到任何内容。 您需要将两个定义合并为一个。您似乎想让消息进入控制台,消息进入文件。根记录器只能具有 一个 级别,因此您需要更改配置,以便附加程

  • 问题内容: 我有一个简单的Python脚本,该脚本使用selenium和webdriver在Chrome窗口中打开Facebook并自动登录。当我运行它时,Chromedriver控制台窗口将打开并保持打开状态,即使在整个程序执行完毕后,也要自行关闭它。 有没有办法隐藏此控制台窗口?我曾尝试为脚本保留一个“ .pyw”扩展名,但这无济于事,因为它不是脚本的控制台窗口,而是我希望隐藏的Chromed

  • 我在Visual Studio中有一个测试项目。我使用Microsoft.VisualStudio.TestTools.UnitTesting。 我在我的一个单元测试中添加了这一行: 当我运行测试时,测试通过,但控制台窗口根本没有打开。 有没有办法让控制台窗口可以通过单元测试进行交互?

  • 问题内容: 我正在用Python写一个IRC机器人。 我希望为Linux和Windows制作独立的二进制文件。主要是希望机器人启动时隐藏控制台窗口,而用户则不能看到该窗口。 我该怎么办? 问题答案: 只需将其保存为.pyw扩展名即可。这将阻止控制台窗口打开。 在Windows系统上,没有“可执行模式”的概念。Python安装程序会自动将.py文件与python.exe关联,以便双击Python文件