http://blog.csdn.net/thl331860203/article/details/49334217
- package com.util;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.text.SimpleDateFormat;
- import java.util.Arrays;
- import java.util.Date;
- import java.util.Iterator;
- import java.util.LinkedHashMap;
- import java.util.Map;
- public class IoUtil {
- /**
- * 创建文件
- * @param fileName
- * @return
- */
- public static File createFile(String filePathName)throws Exception{
- File file = new File(filePathName);
- if(!file.exists()){
- file.createNewFile();
- }else{
- file.delete();
- file.createNewFile();
- }
- return file;
- }
- /**
- * 写入文件
- * 自定义编码
- */
- public static boolean writeTxtFile(String content,String filePathName,String bytes)throws Exception{
- boolean flag=false;
- FileOutputStream o=null;
- try {
- String path="";
- if(filePathName.indexOf("/")>-1){
- path=filePathName.substring(0,filePathName.lastIndexOf("/"));
- }else if(filePathName.indexOf("\\")>-1){
- path=filePathName.substring(0,filePathName.lastIndexOf("\\"));
- }
- createDir(path);
- o = new FileOutputStream(createFile(filePathName));
- o.write(content.getBytes(bytes!=null&&!bytes.equals("")?bytes:"UTF-8"));
- o.close();
- flag=true;
- } catch (Exception e) {
- // TODO: handle exception
- e.printStackTrace();
- }
- return flag;
- }
- /**
- * 写入文件
- * 默认编码UTF-8
- */
- public static boolean writeTxtFile(String content,String filePathName)throws Exception{
- boolean flag=false;
- FileOutputStream o=null;
- try {
- String path="";
- if(filePathName.indexOf("/")>-1){
- path=filePathName.substring(0,filePathName.lastIndexOf("/"));
- }else if(filePathName.indexOf("\\")>-1){
- path=filePathName.substring(0,filePathName.lastIndexOf("\\"));
- }
- createDir(path);
- o = new FileOutputStream(createFile(filePathName));
- o.write(content.getBytes("UTF-8"));
- o.close();
- flag=true;
- } catch (Exception e) {
- // TODO: handle exception
- e.printStackTrace();
- }
- return flag;
- }
- /**
- * @param destDirName
- * @return
- */
- public static boolean createDir(String destDirName) {
- File dir = new File(destDirName);
- if (dir.exists()) {
- return false;
- }
- if (!destDirName.endsWith(File.separator)) {
- destDirName = destDirName + File.separator;
- }
- //创建目录
- if (dir.mkdirs()) {
- return true;
- } else {
- return false;
- }
- }
- /**
- * TEST
- * @param args
- */
- public static void main(String[] args) {
- //Map<String,Object> map = new LinkedHashMap<String,Object>();
- //map=mlistFiles(getPath()+"/test");
- //System.out.println("===>"+getPath());
- }
- /**
- * 取得静态文件生成路径
- *
- * @return
- */
- public static String getPath() {
- String path = IoUtil.class.getResource("").getPath();
- path = path.substring(0, path.indexOf("WEB-INF"));
- return path;
- }
- /**
- * 找出变更的文件
- * @param path
- * @return
- */
- public static Map<String,Object> mlistFiles(String path){
- File file_path=new File(path);
- //列出该目录下所有文件和文件夹
- File[] files = file_path.listFiles();
- //按照文件最后修改日期倒序排序
- Map<String,Object> map = new LinkedHashMap<String,Object>();
- //取出第一个(即最新修改的)文件,打印文件名
- if(files!=null){
- for(int i=0;i<files.length;i++){
- if(!files[i].isHidden()&&files[i].isFile()&&!files[i].getName().equals("sitemap.xml")){
- String value=files[i].getName();
- String key=String.valueOf(files[i].lastModified());
- key=getMilliseconds(key,i);
- //System.out.println("======key=====>"+key);
- map.put(key,value);
- }
- }
- }
- return orderFile(map.size(),map);
- }
- /**
- * 解决linux读取毫秒数为000的情况
- * @param val
- * @param i
- * @return
- */
- public static String getMilliseconds(String val,int i){
- //截取后三位是否为000
- String returnStr="";
- String lastStr=val.substring(val.length()-3,val.length());
- if(lastStr.equals("000")){
- String fisrtStr = val.substring(0,val.length()-3);
- String lastNum="001";
- if(i<10){
- lastNum="00"+String.valueOf(i);
- }else if(i<100){
- lastNum="0"+String.valueOf(i);
- }else{
- lastNum=i<1000?String.valueOf(i):lastNum;
- }
- returnStr=fisrtStr+lastNum;
- }else{
- returnStr=val;
- }
- return returnStr;
- }
- /**
- * 文件排序
- * @param x
- * @param map
- * @return
- */
- public static Map<String,Object> orderFile(int x,Map<String,Object> map){
- Map<String,Object> new_map = new LinkedHashMap<String,Object>();
- Long[] arr = new Long[x];
- int i=0;
- Iterator<String> ite = map.keySet().iterator();
- while(ite.hasNext()){
- String key = ite.next();
- arr[i] = Long.parseLong(key);
- i++;
- }
- Arrays.sort(arr);
- for(int k=arr.length-1;k>=0;k--){
- //System.out.println("==>"+arr[k]+"-->"+dateTimeToStr(arr[k])+">>>"+map.get(""+arr[k]));
- new_map.put(String.valueOf(arr[k]), map.get(""+arr[k]));
- }
- return new_map;
- }
- /**
- * 将长整型数字转换为日期格式的字符串
- * @param time
- * @param format
- * @return
- */
- public static String dateTimeToStr(long time) {
- SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Date date = new Date(time);
- return sf.format(date);
- }
- }