▲▲▲发现java在文件处理方面有缺陷!▲▲▲▲ 以前还真不知道,那你就在访问文件之前先Thread.sleep(100); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这不是缺陷,这是你还没有完全理解线程的并发。你在调用DOS时他启动另外一个线程,你这个主线程继续运行。在你调用DOS的线程还没有执行到建立文件时,你的主线程已经执行到了RandomAccessFile SFile = new RandomAccessFile("c:\\s.mpv","r");所以他肯定找不到这个文件。当你暂停一下时,其实是在等调用DOS的线程执行完了建立了这个文件后再打开,当然就可以了。这样的情况应该使用线程同步等手段 你说调用dos,那么你应该是用Runtime了吧,在打开文件之前Runtime.getRuntime().exec("").waitFor();等待那个dos命令的结束 写得不太清楚,应该是这样:Runtime.getRuntime().exec("YourDosCommand").waitFor(); 为什么我的Applet小程序在IE浏览器中显示一块灰色 JVM模拟了CPU,64位? 求助!初学Java,请问如何用Java实现数字低通滤波器 先祝大家五 一 快乐!!!简单问题 关于对象的?? 新手请进:Java入门!(Hello World!问题)(转贴) 急救!在线等,谢谢了! 如何从数据库中读出CLOB类型的数据,急!!! jbuilder如何将程序编译为可执行文件? java语言实现监控程序 java多线程 为什么我做的JSplitPane拖到一定程度就不能再拖动了? 怎样根据查询返回的字段值(数值或字符型值)的宽度动态设置JTabel的Column的宽度
你这个主线程继续运行。在你调用DOS的线程还没有执行到建立文件时,
你的主线程已经执行到了
RandomAccessFile SFile = new RandomAccessFile("c:\\s.mpv","r");
所以他肯定找不到这个文件。当你暂停一下时,其实是在等调用DOS的线程
执行完了建立了这个文件后再打开,当然就可以了。这样的情况应该使用线程同步等手段
Runtime.getRuntime().exec("").waitFor();等待那个dos命令的结束
Runtime.getRuntime().exec("YourDosCommand").waitFor();