java文件转换为byte数组
刚才想将一个文件转换为byte数组,但是数组里面存放的最大元素的个数为Integer的最大值也就是byte[]bt=newbyte[2147483647];里面最多存放2...
刚才想将一个文件转换为byte数组,但是数组里面存放的最大元素的个数为Integer的最大值也就是byte[] bt=new byte[2147483647];里面最多存放2147483647个元素,如果说,我像把一个较大的文件,字节数大于2147483647的文件可以直接转换为byte数组么?求指导
展开
1个回答
展开全部
那你可以把文件的都分成 一小部分来写啊
如:
FileInputStream ins = new FileInputStream(file);//定位流
BufferedInputStream br = new BufferedInputStream(ins);//读取流
OutputStream ous = response.getOutputStream();
/*这段应该就是你原本的写法*/
/*byte b[] = new byte[(int) file.length()];
while(br.read(b) != -1){
//将b中的数据写到客户端的内存
ous.write(b);
}*/
/*改成这种就可以了*/
byte b[] = new byte[1024];
int len = 0;
while((len = br.read(b)) != -1){
ous.write(b,0,len);
}
望采纳,加分
追问
我知道可以这样写,我的意思是,能不能直接把一个比如说4G大小的文件,直接写入到byte数组里面去
追答
应该是不行了,太大了。不好意思,我还真没有试过的,我现在也找不到这么大的文件。你试试咯!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询