以前还真不知道,
那你就在访问文件之前先
Thread.sleep(100);

解决方案 »

  1.   

    这不是缺陷,这是你还没有完全理解线程的并发。你在调用DOS时他启动另外一个线程,
    你这个主线程继续运行。在你调用DOS的线程还没有执行到建立文件时,
    你的主线程已经执行到了
    RandomAccessFile SFile = new RandomAccessFile("c:\\s.mpv","r");
    所以他肯定找不到这个文件。当你暂停一下时,其实是在等调用DOS的线程
    执行完了建立了这个文件后再打开,当然就可以了。这样的情况应该使用线程同步等手段
      

  2.   

    你说调用dos,那么你应该是用Runtime了吧,在打开文件之前
    Runtime.getRuntime().exec("").waitFor();等待那个dos命令的结束
      

  3.   

    写得不太清楚,应该是这样:
    Runtime.getRuntime().exec("YourDosCommand").waitFor();