程序app1正在对file1写数据,怎么判断它已经写完?
解决方案 »
- 如何排除指定范围的随机数
- 如果希望返回char* 类型数据的函数返回值都遵循同一规则(如果返回值长度为0,就返回null),用什么设计模式?
- 为什么java中不需要类似于C、C++中的.h文件呢?? 50分
- 求与JIDE中的PropertyPane功能类似的java开源控件,或自己写的代码,急用!
- 关于FCKeditor的问题请教各位!
- 一个简单的问题
- 请问:我怎么用java程序如何取出.doc或.excel文件里的内容啊?急!!!(100分)
- java1.2以上版本中是否有功能强大的柱形图,饼图,线形图生成组件?高分相赠!
- 關於父類含帶參構造的問題
- 小白求解jdk-11.0.2_windows-x64_bin环境搭建
- 数字的正则表达式
- java环境变量的配置
File file2=new File("d:/yll.JPG");
FileInputStream fio=null;
FileOutputStream fot=null;
ImageIcon ii=null;
try {
fio=new FileInputStream(file);
fot=new FileOutputStream(file2);
byte [] io1=new byte[2048];
int reads=0;
while((reads=fio.read(io1, 0, 2048))>=0)
{
System.out.println(reads+"======");
fot.write(io1,0,reads);
}
fio.close();
fot.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
----------------自己好好看吧----------
现在的主要问题是对file1进行操作的进程是不可控的,只能被动的去偿试判断file1的状态.
而这种方法我没有,如果试用异常判断也不好使.
如果正常写数据时出现异常(不可控的异常如断电等等),那么你的外部提供一个可访问的boolean字段还可靠吗?
只有在正常写完文件后,才置为true
最后把这个boolean值返回那末去判断这个变量是true还是false便可以知道是否正常写完小女子才疏学浅,胡言乱语几句,如有不妥之处,还望见谅。
恩. 这是一个很好的办法.
但是现在我无法控制app1,所以没有办法定义bollean来确定它是否已经写完.
然后再去和写出来的文件大小比较一下
是否就可以知道文件被正常写完了吧io包里的file类有个方法是
length(),返回long型的文件长度
是否可以实现呢
boolean canRead()
测试应用程序是否可以读取此抽象路径名表示的文件。
boolean canWrite()
测试应用程序是否可以修改此抽象路径名表示的文件。
经过如下测试,证明
1.即便是没有被写完的文件,调用canRead,canWrite,delete的结果都为true
所以通过这种无法知道楼主说的文件是否被正常写完测试:
1.写一个做成5G文本文件的程序
2.运行该程序,生成文件
3.中间把java.exe这个进程杀掉
4.再写一段代码测试对于刚才做成的文件canRead,canWrite方法的结果
5.结果都是true
注:甚至都可以正常执行delete()方法,把文件删掉。