JAVA多线程_Process 模拟命令行窗口
发布日期:2021-05-07 00:20:22 浏览次数:22 分类:技术文章

本文共 1817 字,大约阅读时间需要 6 分钟。

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;}}

运行结果

上一篇:十五.Python异常处理
下一篇:十四.Python_面向对象编程

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年03月23日 22时32分34秒