静态化文件位置注意:
实体类定义:
- public class News {
- private String title;
- private String pubTime;
- private String category;
- private String newsContent;
- public String getTitle() {
- return title;
- }
- public void setTitle(String title) {
- this.title = title;
- }
- public String getPubTime() {
- return pubTime;
- }
- public void setPubTime(String pubTime) {
- this.pubTime = pubTime;
- }
- public String getCategory() {
- return category;
- }
- public void setCategory(String category) {
- this.category = category;
- }
- public String getNewsContent() {
- return newsContent;
- }
- public void setNewsContent(String newsContent) {
- this.newsContent = newsContent;
- }
- }
自定义流的工具类
- public class CharStreamIO {
- public void copyFile(String fsrc, String fDest) {
- File file = new File(fDest);
- if (file.exists()) {
- file.delete();
- }
- PrintWriter out = null;
- BufferedReader in = null;
- try { in = new BufferedReader(new FileReader(fsrc));
- out = new PrintWriter(new BufferedWriter(new FileWriter(fDest)));
- String strRet;
- while ((strRet = in.readLine()) != null) {
- out.println(strRet);
- out.flush();
- }
- }
- catch (Exception e) {
- e.printStackTrace();
- } finally {
- if ( in != null) {
- try { in .close();
- }
- catch (Exception e2) {
- e2.printStackTrace();
- }
- }
- if (out != null) {
- try {
- out.close();
- }
- catch (Exception e2) {
- e2.printStackTrace();
- }
- }
- }
- }
- /**
- * 把传入的信息,保存成文件
- * @param finfo 传入的文件内容信息
- * @param fname 目标路径和文件名
- */
- public void writeFile(String finfo, String fDest) {
- File file = new File(fDest);
- if (file.exists()) {
- file.delete();
- }
- PrintWriter out = null;
- try {
- out = new PrintWriter(new BufferedWriter(new FileWriter(fDest)));
- out.write(finfo);
- out.flush();
- }
- catch (Exception e) {
- e.printStackTrace();
- } finally {
- if (out != null) {
- out.close();
- }
- }
- }
- /**
- * 读取文本型文件
- * @param name
- * @return
- */
- public String readFile(String fname) {
- File file = new File(fname);
- StringBuilder bild = new StringBuilder();
- BufferedReader in = null;
- if (file.exists()) {
- try { in = new BufferedReader(new FileReader(fname));
- String strRet;
- while ((strRet = in.readLine()) != null) {
- bild.append(strRet);
- }
- }
- catch (Exception e) {
- e.printStackTrace();
- } finally {
- if ( in != null) {
- try { in .close();
- }
- catch (Exception e2) {
- e2.printStackTrace();
- }
- }
- }
- } else {
- System.out.println(fname + "不存在");
- }
- return bild.toString();
- }
- }
数据访问层
- public class NewsDao {
- /**
- * 读取数据库中要生成的新闻信息
- * @return
- */
- public List < News > getAllNews() {
- CharStreamIO io = new CharStreamIO();
- SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- List < News > newsList = new ArrayList < News > ();
- News n1 = new News();
- n1.setCategory("sport");
- String c1 = io.readFile("NewsInfo\\news1.txt");
- n1.setNewsContent(c1);
- n1.setPubTime(sd.format(new Date()));
- n1.setTitle("深足教练组:说我们买球是侮辱 朱广沪常暗中支招");
- News n2 = new News();
- n2.setCategory("hot");
- String c2 = io.readFile("\\NewsInfo\\news2.txt");
- n2.setNewsContent(c2);
- n2.setPubTime(sd.format(new Date()));
- n2.setTitle("对对对发发发失误失误");
- newsList.add(n1);
- newsList.add(n2);
- return newsList;
- }
- }
业务逻辑层
- public class NewsBiz {
- /**
- * 读取数据库中要生成的新闻信息
- * @return
- */
- public void createAllNews() throws Exception {
- NewsDao dao = new NewsDao();
- List < News > newsList = dao.getAllNews();
- String destPath = "/News/newspages";
- for (int i = 0; i < newsList.size(); i++) { //读取模板
- CharStreamIO io = new CharStreamIO();
- String tmp = io.readFile("/News/news.tmp");
- //替换模板中的参数数据
- News n = newsList.get(i);
- String newTmp;
- newTmp = tmp.replace(TemplateParam.TITLE, n.getTitle());
- newTmp = newTmp.replace(TemplateParam.CATEGORY, n.getCategory());
- newTmp = newTmp.replace(TemplateParam.PUB_TIME, n.getPubTime());
- newTmp = newTmp.replace(TemplateParam.CONTENT, n.getNewsContent());
- //把替换后的内容保存成新闻页面
- io.writeFile(newTmp, destPath + "/news-" + i + ".html");
- }
- }
- }
TemplateParam类
- public class TemplateParam {
- public static final String TITLE = "%{title}%";
- public static final String CATEGORY = "%{category}%";
- public static final String CONTENT = "%{newsContent}%";
- public static final String PUB_TIME = "%{pubTime}%";
- }
用户接口层
- public class NewsTest {
- public static void main(String[] args) {
- NewsBiz biz = new NewsBiz();
- try {
- biz.createAllNews();
- System.out.println("新闻页面创建完毕!");
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
来源: http://www.bubuko.com/infodetail-2302915.html