java合并文件时很慢_JavaNIO处理文件合并时候碰到的一个问题

我在做一个基于webuploader和spring的文件分片上传的Demo,以下的代码是处理文件的核心部分。

if(parseInt(req.getParameter("chunk"))==0){

try {

file.transferTo(targetFile);

System.out.println(targetFile.length());

}catch (Exception e) {

e.printStackTrace();

return "fail";

}

//filesList.add(new File(path+pos+req.getParameter("chunk")));

}else{

file.transferTo(new File(path+pos+req.getParameter("chunk")));

filesList.add(new File(path+pos+req.getParameter("chunk")));

}

System.out.println(filesList.size());

if((filesList.size()+1)==(parseInt(req.getParameter("chunks")))){

FileChannel mFileChannel = new FileOutputStream(targetFile).getChannel();

try {

for (File fin : filesList) {

FileChannel inFileChannel = new FileInputStream(fin).getChannel();

//src,position(start),size

mFileChannel.transferFrom(inFileChannel, mFileChannel.size(), inFileChannel.size());

inFileChannel.close();

}

}catch (Exception e) {

e.printStackTrace();

return "fail";

}

mFileChannel.close();

filesList.clear();

return "success";

}

return "success";

}

我遇到的问题是,在对mFileChannel进行初始化的时候,发现mFileChannel.size()总等于0,而在之前打印targetFile.size()却能显示出正确的大小,请问为什么会出现这种情况?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值