***********************************************************************
By  :  jcking
getsavefilename小菜鸟一枚,转载帮忙挂个名~
***********************************************************************
stGetPic;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
lpull.v1.XmlPullParser;
lpull.v1.XmlSerializer;
t.Context;
import android.util.Base64;
import android.util.Xml;
import android.widget.Toast;
public class getPicInfo {
    //路径是否存在
    public boolean path_exist = true;
    //图片是否存在
    public boolean pic_exist = true;
   
    /**
    * 获取指定路径所有图片文件及最后修改日期时间
    * @param path 指定文件夹路径
    * @param c
    * @return
    */
    public ArrayList<PicInfo> picInfoArrayList(String path,Context c){
        ArrayList<PicInfo> picFiles = new ArrayList<PicInfo>();
        File file = new File(path);
        //判断文件路径是否存在
        ists()){
            //定义图片数量
            int count  = 0;
            //获取指定目录下所有文件
            File[] allFiles = file.listFiles();
            for(int i = 0;i<allFiles.length;i++){
                //如果文件是图片文件
                if(allFiles[i].getName().endsWith(".png")||allFiles[i].getName().endsWith(".jpg")){
                    //新建图片信息struct
                    PicInfo picFile = new PicInfo();
                    picFile.setName(allFiles[i].getName());
                    //set图片文件本身
                    picFile.setPicFile(allFiles[i]);
                    //获取文件最后修改时间,结果是从1970年1月1日到现在的时间,单位是毫秒
                    long fileLastModified = allFiles[i].lastModified();
                    //获取文件最后修改日期
                    SimpleDateFormat formatter_date = new SimpleDateFormat ( "yyyy年MM月dd日");
                    String picDate = formatter_date.format(new Date(fileLastModified));
                    //set日期
                    picFile.setDate(picDate);
                    //获取文件最后修改时间,精确到秒
                    SimpleDateFormat formatter_time = new SimpleDateFormat ( "hh时mm分ss秒");
                    String picTime = formatter_time.format(new Date(fileLastModified));
                    //set时间
                    picFile.setTime(picTime);
                    //添加到ArrayList
                    picFiles.add(picFile);
                    count++;
                }
            }
            //如果图片数量不为0,返回图片信息
            if(count>0)
                return picFiles;
            //否则提示图片不存在,返回null;
            else{
                Toast.makeText(c, "图片不存在", 0).show();
                setPic_exist(false);
                return null;
            }
        }
        else{
            Toast.makeText(c, "文件路径不存在", 0).show();
            setPath_exist(false);
            return null;
        }
       
    }
   
    /**
    * 将图片文件读取为String字符串
    * @param imagePath 图片文件路径
    * @return
    */
    public String readImage(String imagePath) {   
        BufferedInputStream bis = null;   
        byte[] bytes = null;   
        try {   
            try {//将图片文件存储为byte型   
                bis = new BufferedInputStream(new FileInputStream(imagePath));   
                bytes = new byte[bis.available()];   
                ad(bytes);   
            } finally {   
                if (bis != null) {   
                    bis.close();   
                }   
            }   
        } catch (FileNotFoundException e) {   
            e.printStackTrace();   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
        //将byte型转换为16进制并返回String
        deToString(bytes, 0); 
    }
   
    /**
    * 将String字符串保存为图片文件
    * @param filename 图片文件保存的名称
    * @param content  图片文件的16进制String
    * @return
    */
    public File saveImage(String filename, String content) {
        try {
            DataOutputStream dos = null;
            try {
                //将16进制String字符串转换为2进制byte
                byte[] bs = Base64.decode(content, 0);
                dos = new DataOutputStream(new BufferedOutputStream(
                        new FileOutputStream(filename)));
                dos.write(bs);
            } finally {
                dos.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return new File(filename);
    }
   
    /**
    * 将图片信息写入到xml
    * @param path  指定的文件夹路径,传递给picInfoArrayList()
    * @param c
    * @throws Exception
    */
    public void saveToXml(String path,Context c) throws Exception{
        //新建文件
        File file = new File("/l");
        FileOutputStream outputStream = new FileOutputStream(file);
        //获取所有图片信息
        ArrayList<PicInfo> getPicInfo = new getPicInfo().picInfoArrayList(path, c);
        //用pull方法将信息写入xml
        XmlSerializer serializer = wSerializer();
        //<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
        serializer.setOutput(outputStream, "utf-8");
        serializer.startDocument("utf-8", true);
        //<picInfos>
        serializer.startTag(null, "picInfos");

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。