如何从jtextArea或JEditorPane获取控制台输入和输出

时间:2011-09-25 11:51:09

标签: java console jtextfield jeditorpane

我正在尝试构建一个调用C编译器的小IDE。 当C编译器编译时,我想将输出重定向到IDE中的JTextArea或JEditorPane,以便用户可以查看输出。

此外,在从编译代码执行目标文件后,如何创建用户可以用来与c程序交互的控制台?

例如,如果C代码要求用户键入输入,则用户可以从控制台执行此操作。

基本上,我想要的是如何将控制台输入和输出操作重定向到jtextarea或jeditorpane。 我正在使用java构建IDE。

1 个答案:

答案 0 :(得分:0)

这个问题很广泛(不简洁),但有些提示:

您可以使用

执行外部流程
Process p = Runtime.getRuntime().exec("...").

您获得的流程表示正在运行的外部流程,您可以使用以下命令获取其输入和输出:

BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
PrintWriter pw = new PrintWriter(p.getOutputStream());

使用br,您可以逐行读取流程的输出,并将其添加到JTextArea。使用pw,您可以打印到流程的输入,以传递一些数据。

您应该使用线程连续读取进程并将数据添加到textarea。用户应该解释数据,当他/她认为进程需要输入时,应该将其写入textarea并单击按钮(例如),然后读取textarea并将数据写入{{1 }}