www.pudn.com > dataswap0616.rar > FileHandle.java


package com.gemt.dataswap.io; 
 
import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import org.apache.commons.logging.Log; 
import org.apache.commons.logging.LogFactory; 
import org.dom4j.Document; 
import org.dom4j.io.OutputFormat; 
import org.dom4j.io.XMLWriter; 
import com.gemt.dataswap.resources.ReadConfig; 
 
public class FileHandle { 
	public static final Log log = LogFactory.getLog(FileHandle.class); 
	/** 
	 * 把生成的XML文件保存到指定的目录 
	 * @param document 
	 * @param tableName 
	 * @throws IOException 
	 */ 
	public static void write(Document document, String tableName) throws IOException {        
		if(log.isDebugEnabled()) { 
			log.debug("write file begin ......"); 
		} 
		boolean flag = false; 
		flag = new File(ReadConfig.outfolder).mkdirs(); 
		if(log.isDebugEnabled()) { 
			log.debug("create folder flag is " + flag); 
		} 
		// 指定文件 
		OutputFormat format = OutputFormat.createPrettyPrint(); 
		format.setEncoding("GBK");		 
		XMLWriter writer = new XMLWriter(new FileWriter(new File(ReadConfig.outfolder, tableName + ".xml")), format); 
		writer.write( document ); 
		writer.close(); 
		/* 
		// 美化格式 
		OutputFormat format = OutputFormat.createPrettyPrint(); 
		format.setEncoding("UTF-8"); 
		writer = new XMLWriter( System.out, format ); 
		writer.write( document ); 
		// 缩减格式 
		format = OutputFormat.createCompactFormat(); 
		writer = new XMLWriter( System.out, format ); 
		writer.write( document ); 
		*/ 
		if(log.isDebugEnabled()) { 
			log.debug("write file end ......"); 
		}		 
	} 
	 
	/** 
	 * 扫描XML文件的存放目录,如果目录不存在,则根据system-config.xml 
	 * 中的配置建立改目录,并提示系统出错信息,然后应用结束 
	 * @return 
	 */ 
	public static File[] scanFolder() { 
		if(log.isDebugEnabled()) { 
			log.debug("Collection scanFolder.begin()"); 
		} 
		File file = new File(ReadConfig.infolder); 
		if(!file.exists() || !file.isDirectory()) { 
			try { 
				if(log.isErrorEnabled()) { 
					log.error("存放导入数据库的XML的文件的目录不存在,导入失败! 按任意键结束。。。。"); 
				} 
				file.mkdirs(); 
				System.in.read(); 
				System.exit(1); 
			} 
			catch (IOException e) 
			{ 
				if(log.isErrorEnabled()) { 
					log.error("创建存放XML文件的目录失败"); 
				} 
			} 
		} 
		File fileErr = new File(ReadConfig.failfolder); 
		if(!fileErr.exists() || !fileErr.isDirectory()) { 
			fileErr.mkdirs(); 
		} 
		 
		File fileok = new File(ReadConfig.okfolder); 
		if(!fileok.exists() || !fileok.isDirectory()) { 
			fileok.mkdirs(); 
		} 
		 
		File[] fileArr = file.listFiles(new ExtensionFileFilter("xml")); 
		if(fileArr == null || fileArr.length == 0) { 
			if(log.isDebugEnabled()) { 
				log.debug("no file at xml import folder, application exit!!!! "); 
			} 
			System.exit(1); 
		} 
		for(int i = 0; i < fileArr.length; i ++) { 
			if(log.isDebugEnabled()) { 
				log.debug("files in this folder are(is) " + fileArr[i].getName()); 
			} 
		} 
		 
		 
		if(log.isDebugEnabled()) { 
			log.debug("Collection scanFolder.end()"); 
		}		 
		return fileArr; 
	} 
	 
	public static boolean moveFile(File dir, File file, String name) { 
		if(log.isDebugEnabled()) { 
			log.debug("move file begin() "); 
		} 
	    // Move file to new directory 
	    boolean success = file.renameTo(new File(dir, name)); 
	    if (!success) { 
	        // File was not successfully moved 
	    	if(log.isErrorEnabled()) { 
	    		log.error("移动文件 " + name + " 到目录 " + dir.getPath() + " 失败"); 
	    	} 
	    } 
	     
		if(log.isDebugEnabled()) { 
			log.debug("move file end() "); 
		}	     
		return success; 
	} 
	 
	public static boolean moveFile(File dir, File file) { 
		return moveFile(dir, file, file.getName()); 
	} 
	 
	public static void main(String[] args) { 
		scanFolder(); 
	} 
}