非常快速的回答
您可以使用 JavaCurses 库在控制台上做一些有趣的事情。请阅读下面的内容。
在你这样做之前,让我们在某些情况下回答你的整个问题
这是一个新手问题:) 但这是一个有效的问题。所以给你一些提示:
第一个问题是,终端有多宽? (以字符数计算)旧终端的固定尺寸为 80 个字符和 25 行;
因此,首先假设它有 80 个字符宽。
如何在 80 个字符宽的终端屏幕上居中显示字符串?
你需要担心字符串的长度吗?你如何水平放置东西?你加空格吗?你能想出一个格式字符串吗?
一旦你编写了一个程序,你可以给它任何在这些假设下正确显示的字符串(那个终端是 80 个字符宽)你现在可以开始担心如果你连接到一个终端会发生什么多于或少于 80 个字符?或者您是否连接到终端。例如,如果您不是,那么“美化”您的代码是否有意义?可能不会。
那么问题是如何获得所有这些信息?
您所要求的是将控制台视为具有基于字符的控制功能的智能电传 (tty) 终端的能力。老式的电传终端可以做很多有趣的事情。
一些历史
电传终端是复杂的东西,来自于许多终端制造商(IBM、DEC 等)的遗留问题......这些电传终端的开发是为了解决许多问题,例如能够远程显示内容大型机和小型机。
有一堆终端标准 vt100、vt200、vt220、ansi,它们出现在终端开发历史的各个阶段,并且沿途有数百个专有标准。
这些终端可以定位光标、窗口和颜色、突出显示文本、下划线等,但不是每个人都能做所有事情。然而,这是使用“控制”字符完成的。 ctrl-l 在 ansi 和 vt 终端上是清晰的屏幕,但它可能是其他东西的页面馈送。
如果您编写了一个特定于某个程序的程序,那么在其他地方将毫无意义。因此,为了简化这一点,需要开发几个抽象库来隐藏丑陋。
第一个称为 termcap(终端功能)库,大约在 1978 年,它提供了一种在 UNIX 系统上处理终端的通用方法。它可以告诉正在运行的程序终端的可用功能(例如更改文本颜色的能力)或将光标定位在某个位置,或清除自身等,然后程序将相应地修改其行为。
第二个库被称为 curses,大约在 1985 年(??)它是作为 BSD 系统的一部分开发的,用于编写游戏......这个库最受欢迎的版本之一是 GNU curses 库(以前称为 ncurses)。
在 VMS 上,我相信该库称为 SMG$(屏幕管理库)。
回答问题
无论如何,您可以在 java 中使用这些库之一来确定您是否在正确的终端上工作。 source forge 上有一个名为JavaCurses 的库,它为java 程序提供了这种能力。这将是一个学习如何在您的程序中使用新库的练习,应该会令人兴奋。
JavaCurses 在 Unix 和 Windows 环境中都提供终端编程能力。这将是一个有趣的练习,看看你是否可以用它来玩。
进阶练习
另一个练习是使用同一个库,看看您是否可以创建一个在终端上显示良好的程序,并且还可以在没有终端代码的情况下写入文本文件;
如果您有任何问题,请留言,我会在您进行过程中提供帮助。