0
我需要在命令行中执行命令并将其打印在控制台上。我通过process Builder完成了它。 它正在打印批量输出(即)它等待整个命令完成执行并最终打印出来,但我想立即打印。每行打印命令行时必须同时打印在控制台中。当我尝试调试我发现它是逐行打印。从命令行在控制台中逐行打印
final BufferedReader m_stdOutput;
final BufferedReader m_stdError;
probuilder.directory(new File("C:\\sss"));
Process m_process = null;
try {
m_process = probuilder.start();
} catch (IOException e1) {
e1.printStackTrace();
}
m_stdOutput = new BufferedReader(new InputStreamReader(m_process.getInputStream()));
m_stdError = new BufferedReader(new InputStreamReader(m_process.getErrorStream()));
Thread m_outputThread = new Thread() {
public void run() {
String line;
try {
while ((line = m_stdOutput.readLine()) != null) {
System.out.println(line);
}} catch (IOException e) {
e.printStackTrace();
}
};
};
m_outputThread.start();
Thread m_errorThread = new Thread() {
public void run() {
String line1;
try {
while ((line1 =m_stdError.readLine()) != null) {
System.out.println(line1);
}} catch (IOException e) {
e.printStackTrace();
}
};
};
m_errorThread.start();
尽量不要使用BufferedReader并从InputStream本身打印每个字符...... – MadProgrammer