package com.jqyd.android.module.lbs.util; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import android.os.Environment; public class WriteFile { public static String logStr = "DSDW"; private String fileName; private static String currDay = null; public WriteFile(String fileName) { this.fileName = fileName; currDay = JqydDateUtil.getDateDayOne(new Date()); } /** * 写入日志 * @param content * @return */ public boolean writeToFile(String content) { boolean flag = true; content = JqydDateUtil.getDateSecOne(new Date())+"\t"+content+"\n"; File dirfile = new File(Environment.getExternalStorageDirectory() .getPath() + "/" + logStr+ File.separator + "lxsb_recordLog"); if (!dirfile.exists()) { System.out.println("创建文件夹"+dirfile.mkdirs()); } File file = new File(Environment.getExternalStorageDirectory() .getPath() + "/" + logStr+ File.separator + "lxsb_recordLog" + "/" + fileName + ".txt"); try { FileOutputStream fos = new FileOutputStream(file, true); byte[] ba = content.getBytes("utf-8"); content = new String(ba); fos.write(content.getBytes()); fos.flush(); fos.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return flag; } /** * 删除文件 */ public void deleteFile(){ ArrayList<File> delFileName = new ArrayList<File>(); try { File recorDirfile = new File(Environment.getExternalStorageDirectory() .getPath() + "/" + logStr+ File.separator + "lxsb_recordLog"); File errDirfile = new File(Environment.getExternalStorageDirectory() .getPath() + "/" + logStr+ File.separator + "lxsb_errLog"); File errfile = new File(Environment.getExternalStorageDirectory() .getPath() + "/" + logStr); File file = null; File recordFileArr[] = recorDirfile.listFiles(); int df = 0; for(int i=0;i<recordFileArr.length;i++){ file = recordFileArr[i]; String fileDate = JqydDateUtil.getDateDayOne(new Date(file.lastModified())); System.out.println("文件名:"+file.getName()); System.out.println("转换后的日期:"+fileDate); //判断文件和制定日期的关系,删除最近的七天之外的数据 long day = getQuot(fileDate,currDay); if(day>=7){ df++; delFileName.add(file); } } System.out.println("删除的记录日志数:"+df); String log = "操作日期:"+JqydDateUtil.getDateSecTwo(new Date())+"---删除的日志记录数:"+df; //错误日志 File errFileArr[] = errDirfile.listFiles(); df = 0; for(int i=0;i<errFileArr.length;i++){ file = errFileArr[i]; String fileDate = JqydDateUtil.getDateSecTwo(new Date(file.lastModified())); System.out.println("错误日志文件名:"+file.getName()); System.out.println("错误日志转换后的日期:"+fileDate); //判断文件和制定日期的关系,删除最近的七天之外的数据 long day = getQuot(fileDate,currDay); if(day>=7){ df++; delFileName.add(file); } } System.out.println("需要删除的错误日志数:"+df); ///系统异常日志 File errorFileArr[] = errfile.listFiles(); df = 0; for(int i=0;i<errorFileArr.length;i++){ file = errorFileArr[i]; String fileDate = JqydDateUtil.getDateSecTwo(new Date(file.lastModified())); System.out.println("错误日志文件名:"+file.getName()); System.out.println("错误日志转换后的日期:"+fileDate); //判断文件和制定日期的关系,删除最近的七天之外的数据 long day = getQuot(fileDate,currDay); if(day>=7){ df++; delFileName.add(file); } } System.out.println("需要删除的错误日志数:"+df); //执行删除操作 int del = 0; for(File f : delFileName){ del++; boolean dres = f.delete(); System.out.println("第"+del+"个文件,删除结果:"+dres); } log += ",删除的错误日志记录数:"+del; writeToFile(log); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); writeToFile("没有SD卡,无法获取或写入日志"); } } /** * 计算相差天数 * @param time1 * @param time2 * @return */ public long getQuot(String time1, String time2){ long quot = 0; SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd"); try { Date date1 = ft.parse(time1); Date date2 = ft.parse(time2); quot = date2.getTime() - date1.getTime(); quot = quot / 1000 / 60 / 60 / 24; } catch (ParseException e) { e.printStackTrace(); } return quot; } }