当前位置: 技术问答>java相关
用java的IO流来接收msdos的输出信息(如dir,type,copy......)?
来源: 互联网 发布时间:2017-04-09
本文导语: 用java的IO流来接收msdos的输出信息? 具体是:我在msdos下打入dir命令,然后,我想用java的输入流来直接接收msdos的输出信息,以此来统计文件个数,请问怎么实现? 请不要去谈统计文件个数的方法,我只是想知道:...
用java的IO流来接收msdos的输出信息?
具体是:我在msdos下打入dir命令,然后,我想用java的输入流来直接接收msdos的输出信息,以此来统计文件个数,请问怎么实现?
请不要去谈统计文件个数的方法,我只是想知道:用java的输入流来直接接收msdos的输出信息。
希望各位能给我好的方法,谢谢各位的访问。
具体是:我在msdos下打入dir命令,然后,我想用java的输入流来直接接收msdos的输出信息,以此来统计文件个数,请问怎么实现?
请不要去谈统计文件个数的方法,我只是想知道:用java的输入流来直接接收msdos的输出信息。
希望各位能给我好的方法,谢谢各位的访问。
|
String ls_1;
Process process = Runtime.getRuntime().exec(command);
BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(process.getInputStream()) );
process.getInputStream().read(data);
FileWriter fout=new FileWriter (Filename);
while ( (ls_1=bufferedReader.readLine()) != null)
{ fout.write(ls_1);
fout.write('n');
System.out.println(ls_1);
}
其中Filename 为你想输出的文本文件!
此代码在我这正常
Process process = Runtime.getRuntime().exec(command);
BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(process.getInputStream()) );
process.getInputStream().read(data);
FileWriter fout=new FileWriter (Filename);
while ( (ls_1=bufferedReader.readLine()) != null)
{ fout.write(ls_1);
fout.write('n');
System.out.println(ls_1);
}
其中Filename 为你想输出的文本文件!
此代码在我这正常
|
运行一个外部程序并捕获输出
在Java中运行一个外部程序是使用java.lang.Runtime类的方法exec().该方法返回一个Process类。 如果你想捕获运行程序的输出,就要使用Process类。Process类有三个方法:. Process.getOutputStream(), Process.getInputStream(), Process.getErrorStream().分别对应于stdin, stdout, stderr。因此 如果想要捕捉该程序的输出,就要使用Process.getInputStream()。下面的例子就是运行dir程序,然后 把它的输出打印到屏幕上。所产生的效果和直接运行dir 程序是一样的。
import java.io.*;
class Main {
public static void main(String[] args) {
try {
String cmd = "dir";
Process child = Runtime.getRuntime().exec(cmd);
// 获得dir的输出
InputStream child_in = child.getInputStream();
int c;
while ((c = child_in.read()) != -1)
{
System.out.print((char)c);
}
child_in.close();
} catch (IOException e) {
System.err.println(e);
}
}
}
在Java中运行一个外部程序是使用java.lang.Runtime类的方法exec().该方法返回一个Process类。 如果你想捕获运行程序的输出,就要使用Process类。Process类有三个方法:. Process.getOutputStream(), Process.getInputStream(), Process.getErrorStream().分别对应于stdin, stdout, stderr。因此 如果想要捕捉该程序的输出,就要使用Process.getInputStream()。下面的例子就是运行dir程序,然后 把它的输出打印到屏幕上。所产生的效果和直接运行dir 程序是一样的。
import java.io.*;
class Main {
public static void main(String[] args) {
try {
String cmd = "dir";
Process child = Runtime.getRuntime().exec(cmd);
// 获得dir的输出
InputStream child_in = child.getInputStream();
int c;
while ((c = child_in.read()) != -1)
{
System.out.print((char)c);
}
child_in.close();
} catch (IOException e) {
System.err.println(e);
}
}
}