文件转成流,流转为图片文件
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");
??? }
}