java 操作文件流 工具类

tech2025-08-31  5

package gsa.rule.model.util;

import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Base64; import java.util.Iterator;

import javax.imageio.ImageIO; import javax.imageio.ImageReader; import javax.imageio.stream.MemoryCacheImageInputStream;

public class ImageUtil {          /**      * 将图片,或者文件转成base64字符串      * @param imageFile      * @return      */     public static String getImageStr(File imageFile) {         InputStream in = null;         try {             in = new BufferedInputStream(new FileInputStream(imageFile));             byte[] data = new byte[in.available()];             in.read(data);             in.close();             String imageStr = new String(Base64.getEncoder().encode(data));             return imageStr;         } catch (IOException e) {             // TODO Auto-generated catch block             e.printStackTrace();         }         return null;     }       /**      * 将base64串 转成byte数组,并保存到某路径下的图片中      * @param imageStr      * @return      */     public static File getImageFile(String imageStr) {         File file = new File("D:\\" + System.currentTimeMillis() + ".png");         try {             OutputStream out = new FileOutputStream(file);             byte[] data = Base64.getDecoder().decode(imageStr);             out.write(data);             out.flush();             out.close();         } catch (IOException e) {             e.printStackTrace();         }         return file;     }           /**      *  根据字节流获取图片类型      * */     public static String getImageType(byte[] imageBytes) {         try {             MemoryCacheImageInputStream memoryCacheImageInputStream = new MemoryCacheImageInputStream(new ByteArrayInputStream(imageBytes));             Iterator<ImageReader> itr = ImageIO.getImageReaders(memoryCacheImageInputStream);             while (itr.hasNext()) {                 ImageReader reader = itr.next();                 String imageName = reader.getClass().getSimpleName();                 if (imageName != null) {                     if ("JPEGImageReader".equalsIgnoreCase(imageName)){                         return "jpeg";                     }                     if ("JPGImageReader".equalsIgnoreCase(imageName)) {                         return "jpg";                     }                     if ("pngImageReader".equalsIgnoreCase(imageName)) {                         return "png";                     }                 }             }         } catch (Exception e) {             // TODO: handle exception             e.printStackTrace();         }         return null;     }

}  

最新回复(0)