第一次写文章。
刚才写了一个图片以二进制的形式读取到byte[]数组中去的程序,存在的一个问题是:循环进行InputStream.read(byte[] buffer), 每次读取一定量的字节(数量未知)的数据,都会清空前一次的buffer数组,所以必须要将每次得到的buffer保存起来,最后将所有的buffer合并成一个总共的buffer数组,刚才实现了,害怕忘了,觉得有必要记录一下!
image对象有三个属性,id,name和content,类型分别是:int,String,byte[]
InputStream is = fileItem.getInputStream();
Image image = new Image();
image.setId(9);
image.setName(fileItem.getName());
byte[] buffer = new byte[1024*50];
int length = 0;
byte[] totalBuffer = new byte[1024*50];
for(int lastLength = 0; (length = is.read(buffer)) > 0;lastLength = lastLength + length) {
System.arraycopy(buffer, 0, totalBuffer, lastLength, length);
}
is.close();
image.setContent(totalBuffer);
主要就是这一段,其他的文件上传之类的就不说了,没什么好说的!
刚才写了一个图片以二进制的形式读取到byte[]数组中去的程序,存在的一个问题是:循环进行InputStream.read(byte[] buffer), 每次读取一定量的字节(数量未知)的数据,都会清空前一次的buffer数组,所以必须要将每次得到的buffer保存起来,最后将所有的buffer合并成一个总共的buffer数组,刚才实现了,害怕忘了,觉得有必要记录一下!
image对象有三个属性,id,name和content,类型分别是:int,String,byte[]
InputStream is = fileItem.getInputStream();
Image image = new Image();
image.setId(9);
image.setName(fileItem.getName());
byte[] buffer = new byte[1024*50];
int length = 0;
byte[] totalBuffer = new byte[1024*50];
for(int lastLength = 0; (length = is.read(buffer)) > 0;lastLength = lastLength + length) {
System.arraycopy(buffer, 0, totalBuffer, lastLength, length);
}
is.close();
image.setContent(totalBuffer);
主要就是这一段,其他的文件上传之类的就不说了,没什么好说的!