今天,对一个项目中一直报的异常做了调查,发现根本原因在于被处理的字符串是空的。为了及早发现错误,毕竟程序员看到在Log中打印异常是一件很蛋疼的事情,所以提前判断字符串内容,去除后面处理逻辑的执行,浪费资源。
获取的字符串是从一个文件中读取出来的,得到的是一个FileInputStream对象,所以只要判断这个FileInputStream对象即可。
而FileInputStream中存储可读取内容大小的参数在channel中,这个channel对象是FileChannel类型,可以通过FileChannel的size()方法获取大小,使用时需要捕获其IOException异常。
代码如下:
FileInputStream fis;
try{
//fis实例化,代码略
long size = fis.getChannel().size();
}catch(IOException e){
e.printStackTrace();
}finally{
if(fis != null){
fis.close();
}
}