import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.text.DecimalFormat;
public final class FileUtil
{
private static FileUtil util;
private FileUtil(){}
/**
* return a FileUtil instance that is unique.
* @return FileUtil instance
*/
public static FileUtil getInstance()
{
if(null == util)
{
synchronized (FileUtil.class)
{
if(null == util)
{
util = new FileUtil();
}
}
}
return util;
}
/**
* retrun a size of file that unit is 1.00MB.if the file is not exsits, return null;
* @param path file's path
* @return file's size
*/
public Double getFileLength(String path)
{
File file = new File(path);
if (file.exists())
{
FileInputStream input = null;
try
{
input = new FileInputStream(file);
FileChannel len = input.getChannel();
double value = (double) len.size()/1024/1024;
DecimalFormat format = new DecimalFormat("##0.00");
return Double.valueOf(format.format(value));
}
catch (IOException e)
{
return null;
}
finally
{
if(null != input)
{
try
{
input.close();
}
catch (IOException e)
{
}
}
}
}
return null;
}
}