bug:传输一个文件,然后删掉这个文件,就是删不掉:
操作无法完成 因为文件已在 Java(TM) Platform SE binary 中打开。
明明该关闭文件的的地方都关闭了的!
既定的流程是这样的:
1.先传输文件名,然后根据文件名比如1.jpg打开一个RandomAccessFile;
new RandomAccessFile(new File("1.jpg"), "rw");
2.一块一块地写文件;
3.最后关闭那个RandomAccessFile。
正常情况下是OK的,
实际的流程,不正常的情况是这样的:文件名是传输了,但后续没有准备好,也就是不能一块一块地写文件了,
重试了一次,可以一块一块的写文件了,然后关闭文件,
可以看到文件也是完整地正确地写好了,但就是删不掉。
也就是该文件仍然是打开着的,那到底是什么地方的问题呢?
问题在同一个文件名的RandomAccessFile new了2次,重试的时候又new了一次,这次文件关闭了,第一次没有准备好的文件没有关闭。
改为完全准备好了之后才new RandomAccessFile,就ok了。