当前位置:首页 > java读取文件目录结构并生成xml树
java读取文件目录结构并生成xml树,具体实现代码如下: package org.wendong.file;
import java.io.File;
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.Writer;
import java.text.SimpleDateFormat; import java.util.Calendar;
import java.util.GregorianCalendar;
import org.dom4j.Document;
import org.dom4j.DocumentHelper; import org.dom4j.Element; /**
* 多线程读取本地文件中的所有文件目录结构及文件大小 * @author Administrator * */
public class ThreadReader extends Thread {
@Override
public void run() { try {
Long start = System.currentTimeMillis();
String name = Thread.currentThread().getName(); System.err.println(\当前线程名:\ File file = new File(name);
Document doc = DocumentHelper.createDocument(); Element el = doc.addElement(file.getName()); el = getFile(file, el);
File docFile = new File(name+\目录结构.xml\ if(!docFile.exists()){
docFile.createNewFile();
FileOutputStream fos = new FileOutputStream(docFile); fos.write(doc.asXML().getBytes()); fos.flush(); fos.close(); }
Long end = System.currentTimeMillis();
www.kinghc.com
System.out.println(\目录建立成功! 耗时:\ } catch (Exception e) {
System.err.println(\异常\ } }
public static Element getFile(File file, Element el){ try {
File[] list = file.listFiles();
if(list != null && list.length > 0){ for(File f : list){
if(f.isDirectory()){//目录
Element e = el.addElement(\ e.addAttribute(\
e.addAttribute(\ getFile(f, e); }else{//文件
Element e = el.addElement(\ e.addAttribute(\
e.addAttribute(\ e.addAttribute(\ }
System.out.println(el.asXML()); } }
return el;
} catch (Exception e) {
System.err.println(\异常\ }
return null; }
public static String parseSize(Long l){ String strSize = \ if(l < 1000){
strSize = l + \ }else if(l < 1000*1000){
strSize = l/1000+\ }else if(l < 1000*1000*1000){
strSize = l/(1000*1000)+\ }else if(l < 1000*1000*1000*1000){
strSize = l/(1000*1000*1000)+\ }
return strSize;
www.kinghc.com
}
public static String parseDate(Long l){
Calendar calendar = GregorianCalendar.getInstance(); calendar.setTimeInMillis(l);
SimpleDateFormat sdf = new SimpleDateFormat(\ return sdf.format(calendar.getTime()); }
public static void main(String[] args) { try {
File[] file = File.listRoots(); for(File f : file){
ThreadReader tr = new ThreadReader(); tr.setName(f.getName());
tr.setPriority(MAX_PRIORITY); tr.start(); }
} catch (Exception e) {
System.err.println(\异常\ } } }
www.kinghc.com
共分享92篇相关文档