Java动态生成静态页

代码中有详细的注释, 这里就不再详述(有在项目中使用).1. 可自定义生成文件名和路径.2. 可自动生成文件夹,方便管理(一般是按日期)import java.io.*;import java.net.*;/*** * @author   yidwo Lai* @version 1.0**/public class MyMakeHtml{/*** * @param sourceURL 动态页面运行路径* * @param saveFilePath 生成的静态页面保存路径(带文件名)* * @param dirPath 生成的静态页面保存路径(不带文件名,供动态生成文件夹,以便管理)* * @return boolean*/public static boolean MyMakeHtml(String sourceURL, String saveFilePath,String dirPath) {    boolean flag = false;    RandomAccessFile saveFile = null;//BufferedRandomAccessFile saveFile;    InputStream inStream = null;    try {        // 如果静态页面已经存在,则删除    File myFile=new File(saveFilePath);        if(myFile.exists()){             myFile.delete();    }    myFile=null;        // 如果给出路径的文件夹不存在,则新建.    if(dirPath.trim().length()>0){                File dirFile = new File(dirPath);                  if(!dirFile.exists()){                  dirFile.mkdirs();         }         dirFile=null;    }       /**   * 先调用 RandomAccessFile的 RandomAccessFile(String name, String mode)   * 构造方法,如果给定的name!=null, 则转而调用   * RandomAccessFile(File file, String mode)的构造方法         *    */    saveFile = new RandomAccessFile(saveFilePath, "rw");        // 后台运行动态页面        URL url = new java.net.URL(sourceURL);                // 打开对动态页面的访问连接        URLConnection conn = url.openConnection();                // 获得动态页面的源码        inStream = conn.getInputStream();                // 取得源码的大小        int len = 512;//conn.getContentLength();                byte[] buffer = new byte[len];        int lineRead = 0;                // 写入静态页面        while ( (lineRead = inStream.read(buffer, 0, len)) != -1) { //EOF                saveFile.write(buffer, 0, lineRead);        }        flag = true;        System.out.println("sourceURL = " + sourceURL+"   contentLength= "+len);            }catch (Exception e) {        e.printStackTrace();        flag = false;    }finally {        try {            if (saveFile != null) {            saveFile.close();            }        }catch (Exception e) {        }        try {            if (inStream != null) {                inStream.close();            }        }catch (Exception e) {        }    }    return flag;}

posted @ 2010-11-01 10:01  Me疯子_(~  阅读(255)  评论(0编辑  收藏  举报