• 复制图片


    1.复制图片

    public void copyFolder(String oldPath, String newPath) {
            
            try {
                File mFile = new File(newPath);
                if(!mFile .exists()){
                    (new File(newPath)).mkdirs(); // 如果文件夹不存在 则建立新文件夹
                }
                File a = new File(oldPath);
                String[] file = a.list();
                File temp = null;
                for (int i = 0; i < file.length; i++) {
                    if (oldPath.endsWith(File.separator)) {
                        temp = new File(oldPath + file[i]);
                    } else {
                        temp = new File(oldPath + File.separator + file[i]);
                    }
    
                    if (temp.isFile()) {
                        String fileName = newPath + "/" + (temp.getName()).toString();
                        File testFile = new File(fileName);
                        if (!testFile.exists()) {
                            FileInputStream input = new FileInputStream(temp);
                            FileOutputStream output = new FileOutputStream(fileName);
                            byte[] b = new byte[1024 * 5];
                            int len;
                            while ((len = input.read(b)) != -1) {
                                output.write(b, 0, len);
                            }
                            output.flush();
                            output.close();
                            input.close();
                            num++;
                        }
                    }
                    if (temp.isDirectory()) {// 如果是子文件夹
                        copyFolder(oldPath + "/" + file[i], newPath + "/" + file[i]);
                    }
                }
            } catch (Exception e) {
                System.out.println("复制整个文件夹内容操作出错");
                e.printStackTrace();
    
            }
        }
        
        private String getTimeString(String time){
            if(time.length()<2){
                return "0" + time;
            }
            else{
                return time;
            }
        }
    }
    

    2.将二进制文件转化图片

    import java.io.ByteArrayInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    /**
    * 将二进制流转换成图片文件
    * @author 晚风工作室 www.soservers.com
    *
    */
    public class ImgErToFileUtil {
    /**
    * 将接收的字符串转换成图片保存
    * @param imgStr 二进制流转换的字符串
    * @param imgPath 图片的保存路径
    * @param imgName 图片的名称
    * @return
    * 1:保存正常
    * 0:保存失败
    */
    public static int saveToImgByStr(String imgStr,String imgPath,String imgName){
    try {
    System.out.println("===imgStr.length()====>" + imgStr.length()
    + "=====imgStr=====>" + imgStr);
    } catch (Exception e) {
    e.printStackTrace();
    }
    int stateInt = 1;
    if(imgStr != null && imgStr.length() > 0){
    try {
    // 将字符串转换成二进制,用于显示图片
    // 将上面生成的图片格式字符串 imgStr,还原成图片显示
    byte[] imgByte = hex2byte( imgStr );
    InputStream in = new ByteArrayInputStream(imgByte);
    File file=new File(imgPath,imgName);//可以是任何图片格式.jpg,.png等
    FileOutputStream fos=new FileOutputStream(file);
    byte[] b = new byte[1024];
    int nRead = 0;
    while ((nRead = in.read(b)) != -1) {
    fos.write(b, 0, nRead);
    }
    fos.flush();
    fos.close();
    in.close();
    } catch (Exception e) {
    stateInt = 0;
    e.printStackTrace();
    } finally {
    }
    }
    return stateInt;
    }
    /**
    * 将二进制转换成图片保存
    * @param imgStr 二进制流转换的字符串
    * @param imgPath 图片的保存路径
    * @param imgName 图片的名称
    * @return
    * 1:保存正常
    * 0:保存失败
    */
    public static int saveToImgByBytes(File imgFile,String imgPath,String imgName){
    int stateInt = 1;
    if(imgFile.length() > 0){
    try {
    File file=new File(imgPath,imgName);//可以是任何图片格式.jpg,.png等
    FileOutputStream fos=new FileOutputStream(file);
    FileInputStream fis = new FileInputStream(imgFile);
    byte[] b = new byte[1024];
    int nRead = 0;
    while ((nRead = fis.read(b)) != -1) {
    fos.write(b, 0, nRead);
    }
    fos.flush();
    fos.close();
    fis.close();
    } catch (Exception e) {
    stateInt = 0;
    e.printStackTrace();
    } finally {
    }
    }
    return stateInt;
    }
    /**
    * 二进制转字符串
    * @param b
    * @return
    */
    public static String byte2hex(byte[] b) // 二进制转字符串
    {
    StringBuffer sb = new StringBuffer();
    String stmp = "";
    for (int n = 0; n < b.length; n++) {
    stmp = Integer.toHexString(b[n] & 0XFF);
    if (stmp.length() == 1) {
    sb.append("0" + stmp);
    } else {
    sb.append(stmp);
    }
    }
    return sb.toString();
    }
    /**
    * 字符串转二进制
    * @param str 要转换的字符串
    * @return 转换后的二进制数组
    */
    public static byte[] hex2byte(String str) { // 字符串转二进制
    if (str == null)
    return null;
    str = str.trim();
    int len = str.length();
    if (len == 0 || len % 2 == 1)
    return null;
    byte[] b = new byte[len / 2];
    try {
    for (int i = 0; i < str.length(); i += 2) {
    b[i / 2] = (byte) Integer
    .decode("0X" + str.substring(i, i + 2)).intValue();
    }
    return b;
    } catch (Exception e) {
    return null;
    }
    }
    }
    

      

  • 相关阅读:
    HTTP长连接、短连接使用及测试
    递归分治算法之二维数组二分查找(Java版本)
    Java二维数组的概念和使用方法
    java二维数组遍历
    HashMap多线程并发问题分析
    Linux 移动或重命名文件/目录-mv 的10个实用例子
    CSS fixed 定位元素失效的问题
    关于 JavaScript 中的继承
    React 虚拟 DOM 的差异检测机制
    下拉框中选项的快速定位
  • 原文地址:https://www.cnblogs.com/jmsjh/p/7405225.html
Copyright © 2020-2023  润新知