当前位置: 代码迷 >> J2SE >> 写了个demo说明小弟我现在的有关问题,关于写入操作不能全部写入
  详细解决方案

写了个demo说明小弟我现在的有关问题,关于写入操作不能全部写入

热度:19   发布时间:2016-04-23 21:04:51.0
写了个demo说明我现在的问题,关于写入操作不能全部写入。

import java.io.IOException;

public class demo1
{
public static void main(String[] args) throws IOException, InterruptedException
{
String username = null;
String password = "admin";
for (int i = 1; i <= 10; i++)
{
username = "yulei" + i;

Runtime r = Runtime.getRuntime();
r.exec("cmd.exe /c start D:/svn/Apache2/bin/htpasswd.exe -b F:/passwd " + username + " " + password);

 //Thread.sleep(3000); // 这里是我自己的本方法,休眠3秒,因为这个插入根本用不了3秒钟
}
}

}


D:/svn/Apache2/bin/htpasswd.exe是apache的路径
F:/passwd是个储存文件

现在的问题是,如果这样一个循环不等待,实际上只写入了几条,并不是全部。


我参考网络上面资料IO操作可以实现锁定文件,但是我只执行了一句cmd命令,并没有深入控制到IO的操作。






所以我的问题就是如何处理这样调用外部命令的并发操作。
我怎么才能知道上个r.exec()命令执行完了?又通过什么掉下个r.exec(),这个地方把我难住了
------解决方案--------------------
apache的htpasswd。我不是很熟。

1、如果不用java调用。写个bat文件,直接执行这个命令,是不是也是同样的情况(比如只有3行)
2、返回值path有没有打印出来?有可能接收不完全导致,你也可以考虑用IO流。
  相关解决方案