String cmd = "tar -xvf /home/creat/ext-4.0.7-gpl/eclipse-jee-indigo-SR2-linux-gtk-x86_64.tar.gz ";
Process p = Runtime.getRuntime().exec(cmd);
InputStream input = p.getInputStream();
StringBuffer buffer = new StringBuffer();
for (;;)
{
int c = input.read();
if (c == -1) break;
buffer.append((char) c);
}
String outputText = new String(buffer.toString().getBytes("iso-8859-1"), "utf-8");
input.close();
System.out.println(outputText);这是部分返回值
eclipse/plugins/org.eclipse.datatools.connectivity.apache.derby_1.0.102.v201107221459.jar
eclipse/plugins/org.eclipse.pde.ua.core_1.0.100.v20110516.jar
eclipse/plugins/org.eclipse.jdt.compiler.apt_1.0.400.v0110816-0800.jar
eclipse/plugins/org.eclipse.datatools.enablement.sap.maxdb.dbdefinition_1.0.0.v201107221507.jar
eclipse/plugins/org.eclipse.datatools.connectivity.oda.design_3.3.4.v201109211529.jar
eclipse/plugins/org.eclipse.team.cvs.ssh2_3.2.300.I20110511-0800.jar执行结果正确,但是这个是执行完了返回全部。如何能做到这个命令输出一行JAVA就获取一行?
解决方案 »
- java如何实现鼠标拖动绘制虚框矩形,在画出矩形后矩形虚拟边框消失,矩形中间填充颜色?.
- 一个线程问题
- GUI中 多监听程序
- 谁能帮我把这一小段java代码 改成javasript的(java逻辑运行正常)
- 高手帮忙,如何按行获取textarea()上输入的信息
- 错在哪里?
- 如何将一个java程序作成服务程序,具体见帖子内容
- 这是chinaUnix上的所有精华帖子,希望学习JAVA的都上去看看。这样你也不必发有些相关的帖子了!
- ·····如果扩充java在运行时的内存,送100分给解决问题者
- 如何生成下拉菜单
- JAVA程序运行一段时间之后,就变得很奇怪
- 多线程测试,内存溢出,为什么java没给我自动回收垃圾?
BufferedReader br = null;
String cmd = "tar -xvf /home/creat/ext-4.0.7-gpl/eclipse-jee-indigo-SR2-linux-gtk-x86_64.tar.gz ";
try
{
Process ps = Runtime.getRuntime().exec(cmd);
br = new BufferedReader(new InputStreamReader(ps.getInputStream()));
String temp = null;
logger.info(cmd);
while((temp = br.readLine())!= null)
{
System.out.println(temp); //获取一行
}
}
catch (IOException e)
{
throw e;
}
finally
{
if(br!=null)
{
try { br.close(); } catch (IOException e) {}
}
}
问题解决了,但是我不明白为什么用readline就可以?这个inputstream也是及时读取的吗?
我知道readline是一行的,我的意思是,这个InputStream是执行完才会获得到还是绑定刀执行的返回值?因为我用一开是的写法看时间是命令全部执行完才有了inputstream,为什么换成readline他是同步的?