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

Java:如何修改控制台输出?

茅鸿宝
2023-03-14
问题内容

我需要编写一个简单的基于终端的程序,

  1. 使用包裹在BufferedReader中的FileReader从文件中读取一些文本。
  2. 将文本打印到控制台,用户应该可以对其进行修改。
  3. 输入Enter + S后,程序应读取修改后的文本并将其保存回原始文件。

总而言之,这个想法是为没有GUI的类Unix环境编写一个文本编辑器

但是,我在步骤2和3中遇到问题。

  1. System.out打印的所有文本都是不可变的。我该如何改变这种行为?

  2. 如何实现Enter + S的键侦听器。我可以使用GUI轻松实现它,但是如何在基于控制台的程序中添加侦听器呢?并在Enter程序中只需在修改后的文本中添加新行。另外,我该如何阅读已经打印到终端的文本?

PS我必须使用JDK 1.4,因此如果有任何相关性,则无法访问Scanner和Console类。我还认为,用Java无法完成这样的任务,因此您可以建议使用C
/ C ++解决方案。毕竟,他们早在MS-DOS时代就做到了。

谢谢!


问题答案:

您需要的是类似charva的东西。它是一个Java库,可以执行24
x 80终端的旧termcap / termio / curses / ncurses库的工作。

Charva(和curses等)通过向终端或终端仿真器发送控制代码和/或转义序列来移动光标,写入和擦除字符等工作。在现代系统上,它们依赖于提供ANSI或VT100终端仿真的控制台…或类似的东西。



 类似资料:
  • 问题内容: 我想知道是否可以通过某种方式设置输出到Java控制台的文本的颜色。它是否特定于系统并不重要,因为该程序只能在我的Windows 7 x64笔记本电脑上运行。 这个问题:几周前有人问过在Javaeclipse控制台中更改颜色,它对类似的问题有很好的解决方案(@VonC提供),但是它仅解决了eclipse内的问题。 如果我从命令行执行程序,是否可以达到相同的效果?如果可以,怎么办? 问题答

  • 问题内容: 通过控制台进行任何输入的数据类型(如我使用BufferedReader类所做的那样)为String。之后,我们将其类型转换为需要查询的数据类型(如Inter.parseInt()为整数)。但是在C语言中,我们可以接受任何输入原始数据类型,而在Java中,所有输入类型都是Neccerily String。为什么是这样? 问题答案: 控制台输入实际上以一系列字节而不是字符串的形式读入。这是

  • 本文向大家介绍如何更改控制台的WindowLeft,包括了如何更改控制台的WindowLeft的使用技巧和注意事项,需要的朋友参考一下 使用Console.WindowLeft属性更改C#中控制台的WindowLeft。 示例 现在让我们看一个例子- 输出结果 这将产生以下输出-

  • 问题内容: 我正在尝试在python中找到一种将脚本执行日志重定向到文件以及以pythonic方式的方法。有没有简单的方法可以做到这一点? 问题答案: 我想出了这个[unested] 在python中将期望有一个函数。您可以使用具有此功能的自定义对象。否则,您也可以让sys.stdout引用您的对象,在这种情况下,即使没有,它也会被准备。

  • 问题语句:我有一个在Xcode中运行的程序,它有一堆print()语句,可以很好地将输出打印到调试控制台。然而,我希望也能够将这些输出重定向到一个文件,这样我就可以让用户将它们发送给我,作为调试的一种方式。 SO上找到的解决方案使我可以将输出重定向到文件,但调试控制台输出将丢失。 问:我想要我的蛋糕和吃它。我希望能够将print()语句重定向到调试控制台和文件。 所以我有引用:https://st

  • 控制台-频道-分类-修改分类 接口URL {youke-url}/console/Index.php?c=live&a=updateCategory&timestamp=1607677497&access_key=abc&sign=5b6e65a6881107b9a6d61bb8fd730cb5071f7911 请求方式 POST Content-Type form-data 请求Query参数