先以简单的文件读写实现为基础,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;
}
|