package com.tcl.easybuy.utils;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class PictureToStreamTransfer
{
/**
* 生成Byte流
* TODO
* @history
* @knownBugs
* @param
* @return
* @exception
*/
public static byte[] getBytesFromFile(File file){
byte[] ret=null;
try{
if (file==null){
// log.error("helper:the file is null!");
return null;
}
FileInputStream in=new FileInputStream(file);
ByteArrayOutputStream out=new ByteArrayOutputStream(4096);
byte[] b=new byte[4096];
int n;
while ((n= in.read(b))!=-1){
out.write(b,0, n);
}
in.close();
out.close();
ret= out.toByteArray();
}catch (IOException e){
// log.error("helper:get bytes from file process error!");
e.printStackTrace();
}
return ret;
}
/**
* 把流生成图片
* TODO
* @history
* @knownBugs
* @param
* @return
* @exception
*/
public static File getFileFromBytes(byte[] b, String outputFile){
File ret=null;
BufferedOutputStream stream=null;
try{
ret=new File(outputFile);
FileOutputStream fstream=new FileOutputStream(ret);
stream=new BufferedOutputStream(fstream);
stream.write(b);
}catch (Exception e){
// log.error("helper:get file from byte process error!");
e.printStackTrace();
}finally{
if (stream!=null){
try{
stream.close();
}catch (IOException e){
// log.error("helper:get file from byte process error!");
e.printStackTrace();
}
}
}
return ret;
}
/**
*@param args
*@throws IOException*/
public static void main(String[] args)throws IOException{
// int byteread = 0;
// File file = new File("2.GIF");
// InputStream is = new FileInputStream(file);
// byte[] buffer = new byte[1024];
// while ((byteread = is.read(buffer)) != -1) {//一次读1444个字节放入buffer数组中
// System.out.println(is.read(buffer));
// }
File file=new File("2.GIF");
byte[] b= getBytesFromFile(file);
getFileFromBytes(b,"22.jpg");
}
}