这个星期实训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。

解决方案 »

  1.   

    你写入一个后缀名为html的文件
    用bufferedwriter写string 用table标签限定表格布局 不就行了
      

  2.   

    这和从数据库查数据在HTML上显示有什么区别?
    LZ这只是个读数据的问题java file类的基本方法
    http://hi.baidu.com/ccskun/blog/item/7dafb600fa7aae0b728da546.htmlhttp://blog.csdn.net/gongfuliang/archive/2008/12/17/3538831.aspx
      

  3.   

    package test;import java.io.*;
    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();
    }
    }
    }
      

  4.   

    没事粗略写一下,功能全部实现package test;import java.io.BufferedReader;
    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();
    } }
    }
      

  5.   

    如果你参加实训又找别人来解决问题,这还有意义吗?如果只考虑HTML写入的问题,不如用apache的ECS,省的自己组织标签。
    http://jakarta.apache.org/ecs/index.html
      

  6.   

    你可以使用itext组件,它有生成pdf和html的api
    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;
    }

    }
      

  7.   

    生成的结果为fileList.html
    内容为 文件名  大小  创建时间     所在目录
    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