先以简单的文件读写实现为基础,FileHelper类中的readFile方法用于读取文件内容,writeFile方法用于向文件中写入内容。
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
|
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; public class FileHelper { public static String readFile(String filename) throws Exception { BufferedReader reader = new BufferedReader( new FileReader(filename)); String ans = "" , line = null ; while ((line = reader.readLine()) != null ){ ans += line + "\r\n" ; } reader.close(); return ans; } public static void writeFile(String content, String filename) throws Exception { BufferedWriter writer = new BufferedWriter( new FileWriter(filename)); writer.write(content); writer.flush(); writer.close(); } public static void main(String[] args) throws Exception { String ans = readFile( "D:\\input.txt" ); writeFile(ans, "D:\\output.txt" ); } } |
然后在FileHelper类的基础上写一个WebpageMaker类,其createPage方法用于将特定文件中的内容生成在特定的网页中。
其中如果要插入代码可以将代码加入中。
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
|
import java.util.StringTokenizer; public class WebpageMaker { public static String initBegin() { String s = "<!doctype html><html><head><title></title></head><body>\r\n" ; return s; } public static String initEnd() { String s = "\r\n</body></html>\r\n" ; return s; } public static void createPage(String inputfilename, String outputfilename) throws Exception { String content = FileHelper.readFile(inputfilename); StringTokenizer st = new StringTokenizer(content, "\r\n" ); String ans = "" ; ans += initBegin(); boolean isCoding = false ; while (st.hasMoreElements()) { String s = st.nextToken(); int len = s.length(); for ( int i= 0 ;i<len;i++) { if (i+ 6 <= len && s.substring(i,i+ 6 ).equals( "<alex>" )) { isCoding = true ; ans += "<pre style=\"background-color:aliceblue\">" ; i += 5 ; continue ; } if (i+ 7 <= len && s.substring(i,i+ 7 ).equals( "</alex>" )) { isCoding = false ; ans += "</pre>" ; i += 6 ; continue ; } char c = s.charAt(i); if (c == '\"' ) ans += " "" ; else if (c == '&' ) ans += "&" ; else if (c == '<' ) ans += "<" ; else if (c == '>' ) ans += ">" ; else if (c == ' ' ) ans += " " ; else if (c == '\t' ) ans += " " ; else ans += c; } if ( false == isCoding) ans += "<br />\r\n" ; else ans += "\r\n" ; } ans += initEnd(); FileHelper.writeFile(ans, outputfilename); } public static void main(String[] args) throws Exception { createPage( "D://test.txt" , "D://test.html" ); } } |
样例:
输入文件:test.txt
1
2
3
4
5
6
7
|
hello world! 大家好:) #include int main() { printf("hello world!\n"); return 0; } |
输出文件:test.html
1
2
3
4
5
6
7
8
9
|
<!doctype html>< html >< head >< title ></ title ></ head >< body > hello world!< br /> 大家好:)< br /> < pre style = "background-color:aliceblue" >#include < stdio.h > int main() { printf("hello world!\n"); return 0; }</ pre >< br /> </ body ></ html > |
效果如下:
1
2
3
4
5
6
7
|
hello world! 大家好:) #include <stdio.h> int main() { printf("hello world!\n"); return 0; } |