这个星期实训java,老师的要求是文件索引器实训要求: 要求将给定的目录下的所有文件,按首字母顺序生成一个html文件。 如给定目录D:\,要求将它下面的所有文件(包括子目录下的所有文件)按首字母顺序生成如下的html文件。 文件名 大小 创建时间 所在目录a.exe 200156 2009-05-31 14:03:01 D:\b.doc 354688 2009-05-31 16:00:01 D:\doc\…
如何把读到的文件写入html。
如何把读到的文件写入html。
用bufferedwriter写string 用table标签限定表格布局 不就行了
LZ这只是个读数据的问题java file类的基本方法
http://hi.baidu.com/ccskun/blog/item/7dafb600fa7aae0b728da546.htmlhttp://blog.csdn.net/gongfuliang/archive/2008/12/17/3538831.aspx
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;/**
* 读取目录及子目录下指定文件名的路径 并放到一个数组里面返回遍历
* @author
*
*/
public class FileViewer {
public static void main(String[] args) {
List arrayList = FileViewer.getListFiles("d:/itstest", "srvc",
true); if (arrayList.isEmpty()) {
System.out.println("没有符号要求的文件");
} else {
String message = "";
message += "符号要求的文件数:" + arrayList.size() + "\r\n";
System.out.println(message); for (Iterator i = arrayList.iterator(); i.hasNext();) {
String temp = (String) i.next();
System.out.println(temp);
String crlf = System.getProperty("line.separator");
message += temp + crlf;
// message += temp + "\r\n";
}
appendMethod("c:/123.txt", message);
}
}
public static List<String> fileList = new ArrayList<String>(); /**
*
* @param path 文件路径
* @param suffix 后缀名
* @param isdepth 是否遍历子目录
* @return
*/
public static List getListFiles(String path, String suffix, boolean isdepth) {
File file = new File(path);
return FileViewer.listFile(file, suffix, isdepth);
} public static List listFile(File f, String suffix, boolean isdepth) {
//是目录,同时需要遍历子目录
if (f.isDirectory() && isdepth == true) {
File[] t = f.listFiles();
for (int i = 0; i < t.length; i++) {
listFile(t[i], suffix, isdepth);
}
} else {
// String filePath = f.getAbsolutePath();
String filePath = f.getName();
if (suffix != null) {
int begIndex = filePath.lastIndexOf(".");//最后一个.(即后缀名前面的.)的索引
String tempsuffix = ""; if (begIndex != -1)//防止是文件但却没有后缀名结束的文件
{
tempsuffix = filePath.substring(begIndex + 1, filePath
.length());
} if (tempsuffix.equals(suffix)) {
fileList.add(filePath);
}
} else {
//后缀名为null则为所有文件
fileList.add(filePath);
} } return fileList;
} /**
* 方法追加文件:使用FileWriter
* @param fileName
* @param content
*/
public static void appendMethod(String fileName, String content) {
try {
//打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
FileWriter writer = new FileWriter(fileName, true);
String crlf = System.getProperty("line.separator");
writer.write(content + crlf);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;/**
* java File 类测试
*
* @author Administrator
*
*/
public class FileTest { static List list = new ArrayList(); public static void main(String[] args) {
getFileList("E:\\flash");
for(int i=0 ;i<list.size();i++){
System.out.println(list.get(i).toString());
}
writerTxt(list,"E:\\fileList.html");
} /**
* 遍历目录
* @param path
*/
public static void getFileList(String path) {
File f = new File(path);
if (f.isDirectory()) {
File[] files = f.listFiles();
if (files.length > 0) {
for (int i = 0; i < files.length; i++) {
String s = files[i].getPath();
if (files[i].isFile()) {
try {
list.add("<tr><td>"+files[i].getAbsoluteFile()
+ "</td> <td>"
+ new FileInputStream(files[i]
.getAbsoluteFile()).available()
+ "B</td> <td>" + getFileCreateTime(files[i]) + "</td> <td>"
+ files[i].getParent()+"</td></tr>");
} catch (Exception e) {
} } else {
getFileList(files[i].getPath());
}
}
} }
} /**
* 获得文件创建时间
*
* @param _file
* @return
*/
public static String getFileCreateTime(File _file) {
File file = _file;
try { Process ls_proc = Runtime.getRuntime().exec( "cmd.exe /c dir " + file.getAbsolutePath() + " /tc"); BufferedReader br = new BufferedReader(new InputStreamReader(
ls_proc.getInputStream())); for (int i = 0; i < 5; i++) { br.readLine(); } String stuff = br.readLine(); StringTokenizer st = new StringTokenizer(stuff); String dateC = st.nextToken()+" "; String time = st.nextToken(); String datetime = dateC.concat(time); br.close(); return datetime; } catch (Exception e) { return null; }
}
/**
* 把容器中的内容写到一个txt文件中 create date:2008-6-12 author:Administrator
*
* @param list
* @param fileName
*/
public static void writerTxt(List list, String fileName) {
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));
bw.write("<table align=\"center\" border=2>");
bw.newLine(); for (int i = 0; i < list.size(); i++) {
bw.write((String) list.get(i));
bw.newLine();
}
bw.write("</table>");
bw.flush();
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
}
http://jakarta.apache.org/ecs/index.html
http://www.lowagie.com/iText/这是下载地址,你需要把jar包导入到工程classpath中import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Comparator;
import java.util.Date;
import java.util.Set;
import java.util.TreeSet;import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Paragraph;
import com.lowagie.text.html.HtmlWriter;
public class File2Html {
public static void main(String[] args) throws FileNotFoundException, DocumentException {
// TODO Auto-generated method stub
File root=new File("D:\\MyEclipse 7.0\\j2se\\demo\\src");
Set<FileInfo> set=new TreeSet<FileInfo>(new Comparator<FileInfo>(){
public int compare(FileInfo o1, FileInfo o2) {
return o1.getFileName().compareTo(o2.getFileName());
}
});
listFiles(root,set);
Document doc=new Document();
HtmlWriter.getInstance(doc,new FileOutputStream("fileList.html"));
doc.open();
doc.add(new Paragraph(" 文件名 大小 创建时间 所在目录"));
for(FileInfo info:set){
String str=" "+info.getFileName()+" "+info.getFilesize()+" "+parseDate(info.getCreatedTime())+" "+info.getDirectory();
doc.add(new Paragraph(str));
}
doc.close();
}
private static String parseDate(Date createdTime) {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createdTime);
}
private static void listFiles(File root,Set<FileInfo> set) {
// 判断root是文件合法性省略
File[] f=root.listFiles();
for(File ff:f){
if(ff.isFile()){
FileInfo fileInfo=new FileInfo();
fileInfo.setCreatedTime(new Date(ff.lastModified()));
fileInfo.setDirectory(ff.getParent());
fileInfo.setFileName(ff.getName());
fileInfo.setFilesize(ff.length());
set.add(fileInfo);
}else{
listFiles(ff,set);
}
}
}
}
//封装file信息
class FileInfo{
private String fileName;
private long filesize;
private Date createdTime;
private String directory;
public FileInfo(String fileName, long filesize, Date createdTime,
String directory) {
super();
this.fileName = fileName;
this.filesize = filesize;
this.createdTime = createdTime;
this.directory = directory;
}
public FileInfo() {
super();
} public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public long getFilesize() {
return filesize;
}
public void setFilesize(long filesize) {
this.filesize = filesize;
}
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
public String getDirectory() {
return directory;
}
public void setDirectory(String directory) {
this.directory = directory;
}
}
内容为 文件名 大小 创建时间 所在目录
1.txt 18 2009-04-25 23:10:18 D:\MyEclipse 7.0\j2se\demo\src\file
A.java 82 2009-05-17 14:14:37 D:\MyEclipse 7.0\j2se\demo\src\array
BinaryTreeTester.java 1865 2009-06-09 21:31:41 D:\MyEclipse 7.0\j2se\demo\src
BreakContinue.java 382 2009-03-19 20:25:07 D:\MyEclipse 7.0\j2se\demo\src
BubbleSortTester.java 1035 2009-06-09 16:18:09 D:\MyEclipse 7.0\j2se\demo\src
BubbleSorting.java 903 2009-03-20 12:14:24 D:\MyEclipse 7.0\j2se\demo\src
BuildData.java 568 2009-05-14 00:14:18 D:\MyEclipse 7.0\j2se\demo\src
Cat.java 189 2009-04-26 20:39:59 D:\MyEclipse 7.0\j2se\demo\src
Conditional.java 149 2009-03-26 21:57:05 D:\MyEclipse 7.0\j2se\demo\src
DBConnection.class 1396 2009-06-09 19:53:53 D:\MyEclipse 7.0\j2se\demo\src\db
DBConnection.java 901 2009-06-09 20:09:07 D:\MyEclipse 7.0\j2se\demo\src\db
File2Html.java 2922 2009-06-16 22:45:35 D:\MyEclipse 7.0\j2se\demo\src
FileOper.java 1606 2009-04-25 23:21:04 D:\MyEclipse 7.0\j2se\demo\src\file
FiveChessAppletDemo.java 17825 2009-03-31 15:58:00 D:\MyEclipse 7.0\j2se\demo\src
JDBCTester.java 568 2009-06-09 17:14:35 D:\MyEclipse 7.0\j2se\demo\src\db
Laser.java 440 2009-03-31 15:53:50 D:\MyEclipse 7.0\j2se\demo\src
ListOfNumbers.java 904 2009-04-26 20:49:48 D:\MyEclipse 7.0\j2se\demo\src
MapIt.java 708 2009-04-16 15:39:51 D:\MyEclipse 7.0\j2se\demo\src
MyTester.java 762 2009-06-16 22:26:57 D:\MyEclipse 7.0\j2se\demo\src
QuickSort.java 2073 2009-03-19 20:39:25 D:\MyEclipse 7.0\j2se\demo\src
QuickSorting.java 1321 2009-06-09 16:40:43 D:\MyEclipse 7.0\j2se\demo\src
QuickSortingTester.java 1067 2009-06-09 16:43:41 D:\MyEclipse 7.0\j2se\demo\src
RandomTester.java 404 2009-04-25 23:27:50 D:\MyEclipse 7.0\j2se\demo\src\array
SplitTester.java 344 2009-05-13 23:28:05 D:\MyEclipse 7.0\j2se\demo\src
StatisticLetter.java 618 2009-03-31 16:09:44 D:\MyEclipse 7.0\j2se\demo\src
Test.java 782 2009-04-15 23:02:45 D:\MyEclipse 7.0\j2se\demo\src
TestQueue.java 267 2009-04-17 10:49:42 D:\MyEclipse 7.0\j2se\demo\src
TestThrows.java 339 2009-06-11 21:36:49 D:\MyEclipse 7.0\j2se\demo\src
Tester.java 461 2009-04-26 20:36:21 D:\MyEclipse 7.0\j2se\demo\src\regex
Tester2.java 703 2009-04-26 20:52:38 D:\MyEclipse 7.0\j2se\demo\src\regex
Tester99.java 388 2009-05-23 20:06:12 D:\MyEclipse 7.0\j2se\demo\src