【发布时间】:2014-08-12 12:13:01
【问题描述】:
有一个名为"sdelete" 的程序从 sysinternals 中清楚地删除了磁盘可用空间。如果您使用sdelete.exe -c 执行,它将清除您所有的可用空间,并显示有关标准输出的进度百分比。
所以我尝试使用这个来编写代码:
public class deleteTest {
public static void main(String[] arg){
ProcessBuilder p = new ProcessBuilder("sdelete.exe","-c");
try {
Process pGet = p.start();
p.redirectError(p.redirectInput());
InputStream is = pGet.getInputStream();
int ch;
while((ch = is.read()) != -1){
System.out.print((char)ch);
}
} catch (IOException e) {
e.printStackTrace();
}catch (Exception e){
e.printStackTrace();
}
}
}
但它没有显示百分比,它只是一直显示Zeroing free space on C:\: 0%。该过程不会挂起或冻结,但当它完成时,所有百分比都会立即显示!
我该如何解决这个问题?
【问题讨论】:
标签: java stream processbuilder