我是靠谱客的博主 激情自行车,最近开发中收集的这篇文章主要介绍java 进程 输入 重定向_java I/O进程控制,重定向 演示样例代码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

java I/O进程控制,重定向 演示样例代码

package org.rui.io.util;

import java.io.*;

/**

* 标准I/O重定向

*/

public class Redircting {

public static void main(String[] args) throws IOException {

String path="D:\Users\liangrui\workspace\thinking\src\org\rui\io\util/";

PrintStream console=System.out;

//输入

BufferedInputStream in=new BufferedInputStream(

new FileInputStream(path+"Redircting.java")

);

//输出

PrintStream out=new PrintStream(

new BufferedOutputStream(

new FileOutputStream(path+"testf.out")

)

);

//同意我们对标准输入输出 和错误IO流进行重定向

System.setIn(in);

//System.setOut(out);

//System.setErr(out);

//打印得定向的输入流

BufferedReader br=new BufferedReader(

new InputStreamReader(System.in)

);

String s;

while((s=br.readLine())!=null)

System.out.println(s);

out.close();// remember this!

System.setOut(console);;

}

}

/**

* output:

* 同上源代码

*/

package org.rui.io.util;

public class OSExecuteException extends RuntimeException{

public OSExecuteException(String why){super(why);}

}

package org.rui.io.util;

import java.io.BufferedReader;

import java.io.InputStreamReader;

/**

* 进程控制

*

* 你常常会须要在java内部运行其他操作系统程序,而且要控制这此程序的输入和输出,java类库提供了运行这些操作的类

*

* 为了捕获程序运行时产生的标准输出流,你须要调用getInputStream(),这是由于。。

。是我们能够从中读取信息的流。

* 从程序 中产生的结果每次输出一行,因此要使用readLine

*

*/

public class OSExecuted {

public static void command(String command)

{

boolean err=false;

try {

/**此类用于创建操作系统进程。

* 每一个 ProcessBuilder 实例管理一个进程属性集。

start() 方法利用这些属性创建一个新的 Process 实例。

* start() 方法能够从同一实例反复调用,以利用同样的或相关的属性创建新的子进程。

*/

Process process=new ProcessBuilder(command.split(" ")).start();

//这里还能够返回它们,暂仅仅打印

BufferedReader br=new BufferedReader(

new InputStreamReader(

process.getInputStream()

));

String s;

while((s=br.readLine())!=null)

System.out.println(s);

//捕获错误流

BufferedReader b2=new BufferedReader(

new InputStreamReader(

process.getErrorStream()

));

while((s=b2.readLine())!=null)

{

System.err.println("sssssssss:"+s);

err=true;

}

} catch (Exception e) {

System.out.println("command Ex =="+command);

if(command.startsWith("CMD /C"))

command("CMD /C"+command);

else

throw new RuntimeException(e);

}

if(err)

throw new OSExecuteException(" Errors execting "+ command);

}

}

package org.rui.io.util;

/**

* 以下展示了怎样使用OSExecute的演示样例

* @author lenovo

*

*/

public class OSExecuteDemo {

public static void main(String[] args) {

//javac org/rui/io/util/OSExecuteDemo.java

String path="D:\Users\liangrui\workspace\thinking\src\org\rui\io\util/";

//path="";

String commandw="javap "+path+"OSExecuteDemo.class";

//System.out.println(commandw);

OSExecuted.command(commandw);

}

}

/************************output:

Compiled from "OSExecuteDemo.java"

public class org.rui.io.util.OSExecuteDemo {

// public org.rui.io.util.OSExecuteDemo();

//public static void main(java.lang.String[]);

}

*******/

最后

以上就是激情自行车为你收集整理的java 进程 输入 重定向_java I/O进程控制,重定向 演示样例代码的全部内容,希望文章能够帮你解决java 进程 输入 重定向_java I/O进程控制,重定向 演示样例代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部