首页 > 编程 > Java > 正文

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

2019-11-26 14:50:45
字体:
来源:转载
供稿:网友

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

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;}

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表