java输入输出
来源:互联网 发布:爱快网络诊断dns未响应 编辑:程序博客网 时间:2024/04/19 20:11
黑马程序员_java虚拟机读写其他进程的数据---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------
我们知道使用Runtime对象的exec方法可以运行平台上的其他程序,该方法产生一个Process对象,Process对象代表有该java程序启动的子进程,Process类提供了如下三个方法,用于让程序和其他子进程进行通信。
InputStream getErrorStream()获取子进程的错误流。
InputStream getInputStream():获取子进程的输入流。
OutputStream getOutputStream():获取子进程的输出流。
public class A
{
public static void main(String args[])
{
BufferedReader br=null;
try
{
Process p=Runtime.getRuntime()exec("javac");
br=new BufferedReader(new InputStreamReader(p.getErrorStream()));
String buff=null;
while(buff=br.readLine())!=null)
{
System.out.println(buff);
}
}
catch(IOException ex)
{
ex.printStackrace();
}
finally
{
try
{
if(br!=null)
br.close();
}
catch(IOException ex)
{
ex.printStackTrace();
}
}
}
}
上面程序中第一行红体字代码使用Runtime启动了javac程序,获得了运行改程序对应额子进程,第二行红体字代码以p进程的错误输入流创建了BufferedReader,这个输入流的流向如图所示
图所示的数据流对p进程javac而言,他是输出流;对当前程序而言,它是输入流。不仅如此,也可以通过Process的getOutputStream获得向进程输入数据的流,该流对java程序是输出流,对子进程则是输入数据。
Public class B
{
Public static void main(String args[])
{
PrintStream ps=null;
Try
{
Process p=Runtime.getRuntime().exec("java ReadStandard");
Ps=new PrintStream(p.getOutputStream());
Ps.println("普通字符串");
Ps.println(new WriteToProcess());
}catch(IOException ex)
{
ex.printStackTrace();
}
Finally
{
If(ps !=null)
Ps.close();
}
}
}
Class C
{
Public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
PrintStream ps=new PrintStream(new FileOutputStream("out.txt"));
sc.useDelimiter(" \n");
While(sc.hasNext())
{
Ps.println("键盘输入的内容是:"+sc.next());
}
Ps.close();
}
}
上面程序中的ReadStandard是一个使用Scanner获取标准输入的类,该类提供了main方法,可以被运行——但我们不打算直接运行该类,而是由\WriteToProcess类来运行ReadStandard类,在程序的第一行粗体字代码中,程序使用Runtime的exec方法运行了java ReadStandard 命令,该命令将运行ReadStandard类,并返回运行改程序的子进程。程序第二行红体字代码获得进程P的输出流——该输出流对进程p是输入流,只是对本程序是输出流,程序通过该输出流向进程p输出数据,这些数据将被ReadStandard类读到
运行上面的WriteToProcess类写入ReadStandard进程里,并由ReadStandard读取这些数据,并将这些数据保存到out.txt文件中。---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------
- java输入输出
- java输入输出
- java输入输出
- java输入输出
- java输入输出
- Java输入输出
- java输入输出
- java输入输出
- JAVA输入输出
- Java输入输出
- JAVA 输入输出
- Java 输入输出
- java 输入输出
- Java输入输出
- Java输入输出
- Java输入输出
- java.输入输出
- JAVA 输入输出
- JsonCpp阅读数组需要注意的事项
- 开源SMTP协议实现 skpsmtpmessage
- mysql出现的问题
- 浏览器出现stack overflow at line:0,解决方法
- 数据编码
- java输入输出
- Android 内存泄漏分析
- .net中使用ODP.net访问Oracle数据库(无客户端部署方法)
- java数据类型
- Findbugs在android 中的使用
- jquery 模拟select ,取select的值并模拟select,点击动作同步 - -
- java数组
- 判断字符串为空
- 良好的编程习惯