JAVA多线程_Process 模拟命令行窗口
package com.hp.shell; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; public class shell2{ public static void main(String[] args) { new shell2().Template1().start();; } class input implements Runnable{ InputStream is=null; byte[] b=new byte[1024]; int len=0; public input(InputStream is) { // TODO Auto-generated constructor stub this.is=is; } @Override public void run() { // TODO Auto-generated method stub while(true) { try { while((len=is.read(b))!=-1) { System.out.println(new String(b,0,len)); } } catch (IOException e) { // TODO Auto-generated catch block } } } } class output implements Runnable{ OutputStream os=null; public output(OutputStream os) { // TODO Auto-generated constructor stub this.os=os; } public String getValue() { InputStreamReader in = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(in); try { return br.readLine()+" \r\n"; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } @Override public void run() { // TODO Auto-generated method stub while(true) { try { os.write(this.getValue().getBytes()); os.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } public Thread Template1() { // TODO Auto-generated method stub try { Process run = Runtime.getRuntime().exec("cmd"); InputStream is = run.getInputStream(); OutputStream os = run.getOutputStream(); Thread thread1 = new Thread(new input(is)); Thread thread2 = new Thread(new output(os)); thread1.start(); thread2.start(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }
运行结果
JAVA多线程_Process 模拟命令行窗口
最新推荐文章于 2023-08-18 14:41:47 发布