***********************************************************************
By : jcking
getsavefilename小菜鸟一枚,转载帮忙挂个名~
***********************************************************************
stGetPic;
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小时内删除。
发表评论