zoukankan      html  css  js  c++  java
  • 复制图片

    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;
    }
    }
    }
    

      

  • 相关阅读:
    January 25th, 2018 Week 04th Thursday
    January 24th, 2018 Week 04th Wednesday
    January 23rd, 2018 Week 04th Tuesday
    January 22nd, 2018 Week 04th Monday
    January 21st, 2018 Week 3rd Sunday
    January 20th, 2018 Week 3rd Saturday
    January 19th, 2018 Week 3rd Friday
    January 18th, 2018 Week 03rd Thursday
    January 17th, 2018 Week 03rd Wednesday
    January 16th, 2018 Week 03rd Tuesday
  • 原文地址:https://www.cnblogs.com/jmsjh/p/7405225.html
Copyright © 2011-2022 走看看