静态化文件位置注意:
实体类定义:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
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;
}
} |
自定义流的工具类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
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();
}
} |
数据访问层
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
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;
}
} |
业务逻辑层
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
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类
1
2
3
4
5
6
7
8
|
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}%" ;
} |
用户接口层
1
2
3
4
5
6
7
8
9
10
11
12
|
public class NewsTest {
public static void main(String[] args) {
NewsBiz biz = new NewsBiz();
try {
biz.createAllNews();
System.out.println( "新闻页面创建完毕!" );
} catch (Exception e) {
e.printStackTrace();
}
}
} |
版权声明:原创作品,谢绝转载。否则将追究法律责任
本文转自 叫我北北 51CTO博客,原文链接:http://blog.51cto.com/qinbin/1964312