要想顺利写入磁盘,首先确定磁盘剩余空间打下,以下为判断剩余磁盘大小的方法:
如果你用的是JDK1.6的话,那就很容易了 File.getFreeSpace() ,getUsableSpace()等很多方法可以让你用的
如果你用的是1.5或者以下的话,就只有依靠JNI本地调用来得到空间了 。一般用Runtime只能得到JVM的空间大小
freeMemory() 返回 Java 虚拟机中的空闲内存量。
maxMemory() 返回 Java 虚拟机试图使用的最大内存量。
totalMemory() 返回 Java 虚拟机中的内存总量。
JVM也许会帮你回收这个流的引用,它甚至还会帮你释放这个流对象所占的内存单元,但是它不会去调用close方法去帮你关闭流。而在close方法中会释放文件资源。注意释放资源和垃圾回收是两码事,即使对象不存在了,而这个对象事先占用的一些资源,仍然会被继续占用着,你必须得手工释放。如果不手工释放的话可能发生很多种情况,比如可能在JVM退出Main方法时释放,可能远程的一个程序等了30分钟后自动关闭socket, 可能在你重启电脑时释放。也可能发生别的情况 |