java读文件块会读出null,为什么?
2017-04-17 19:05
423 查看
java读文件块会读出null,为什么?
可以确定这个块不是最后一块
/**
* 从文件中读取一块数据
* @param fs
* @param seel:第几块
* @param vChunkSize:块大小
* @return
*/
public static byte[] readChunkData(FileInputStream fs, int seel, int vChunkSize) {
String tag = "readChunkData";
long t0 = System.currentTimeMillis();
Log.i(tag, "1, seel="+seel+", vChunkSize="+vChunkSize);
if(vChunkSize < 1){
return null;
}
ByteArrayOutputStream bos = null;
byte[] chunkData = null;
try {
bos = new ByteArrayOutputStream();
byte[] tempdata = new byte[vChunkSize];
int len = 0;
int curTotal = 0;
fs.skip(seel*vChunkSize);
while ((len = fs.read(tempdata)) != -1) {
curTotal += len;
bos.write(tempdata, 0, len);
if (curTotal >= vChunkSize) {
break;
}
}
chunkData = bos.toByteArray();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != bos) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
bos = null;
}
}
}
long t = System.currentTimeMillis() - t0;
Log.i(tag, " 用时 = "+ t);
return chunkData;
}
可以确定这个块不是最后一块
/**
* 从文件中读取一块数据
* @param fs
* @param seel:第几块
* @param vChunkSize:块大小
* @return
*/
public static byte[] readChunkData(FileInputStream fs, int seel, int vChunkSize) {
String tag = "readChunkData";
long t0 = System.currentTimeMillis();
Log.i(tag, "1, seel="+seel+", vChunkSize="+vChunkSize);
if(vChunkSize < 1){
return null;
}
ByteArrayOutputStream bos = null;
byte[] chunkData = null;
try {
bos = new ByteArrayOutputStream();
byte[] tempdata = new byte[vChunkSize];
int len = 0;
int curTotal = 0;
fs.skip(seel*vChunkSize);
while ((len = fs.read(tempdata)) != -1) {
curTotal += len;
bos.write(tempdata, 0, len);
if (curTotal >= vChunkSize) {
break;
}
}
chunkData = bos.toByteArray();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != bos) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
bos = null;
}
}
}
long t = System.currentTimeMillis() - t0;
Log.i(tag, " 用时 = "+ t);
return chunkData;
}
相关文章推荐
- 为什么java里面经常作List判断的时候,既要判断list不为null,又要判断size>0呢?
- object ==null 与 null ==object 在Java中有区别吗? 为什么有些人用后者?
- java new一个对象为什么不等于null
- 为什么java里面经常作判断的时候,既要判断list不为null,又要判断size>0呢,岂不是多此一举吗?
- 为什么要采用java这个平台?
- [JAVA]初学者的经验---为什么变量无法使用
- 摘录:《为什么java世界没有真正的快速开发平台》
- 为什么Java中继承是有害的
- 不知道java中为什么那么多layout
- 什么是异常,我们为什么要关心它--The Java Tutorial--Exception第一节
- 为什么Java中继承多数是有害的
- 我们为什么要用Java
- 为什么要学 Java?
- 空指针错误 Java.lang.NullPointerException
- internal compile: java.lang.NullPointerException
- Java中从Orcle里取出数据时,为什么提示“无效的列索引”
- 学习心得:Java为什么支持反射机制?
- 为什么Java中继承是有害的
- 关于为什么学习JAVA WEB开发
- 一般报java.lang.NullPointerException的原因有以下几种