1

我的家庭作业是从 java 程序中调用 .jar,但我无法获取输入流以将结果返回到可读的内容中。这是我首先做的:

InputStream in = proc.getInputStream();
System.out.println(in);

但这不起作用,我发现了一些不同的变化:

BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
System.out.println(input);

但这也不起作用,两种情况都返回如下内容:java.io.BufferedReader@2ce908。我怎样才能让它返回一个可读的输出?

编辑:这是一个从另一个 java 程序接收输出的 java 程序。用户启动的程序称为 Translate.java,它接收英文单词并使用 Runtime.getRuntime().exec("java -jar Dictionary.jar"+) 命令将它们作为命令行参数传递。我被告知使用 Translate.java 中的 getInputStream() 来接收 Dictionary.java 程序的输出。

4

1 回答 1

2

流不是文本;它是为您读取文件的东西。你必须打电话readLine

BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String s = null;
while ((s = input.readLine()) != null) { // it returns null at the end of the file
    System.out.println(s);
}
于 2013-09-19T01:02:24.847 回答