使用Java把文本内容转换成网页的实现方法分享

时间:2021-05-19

先以简单的文件读写实现为基础,FileHelper类中的readFile方法用于读取文件内容,writeFile方法用于向文件中写入内容。

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方法用于将特定文件中的内容生成在特定的网页中。
其中如果要插入代码可以将代码加入中。

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 += "&quot;"; else if(c == '&') ans += "&amp;"; else if(c == '<') ans += "&lt;"; else if(c == '>') ans += "&gt;"; else if(c == ' ') ans += "&nbsp;"; else if(c == '\t') ans += "&nbsp;&nbsp;&nbsp;&nbsp;"; 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

hello world!大家好:)#include int main() { printf("hello world!\n"); return 0;}

输出文件:test.html

<!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>

效果如下:

hello world!大家好:)#include <stdio.h>int main() { printf("hello world!\n"); return 0;}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章