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

前端技术 2023/09/05 Java

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

本文地址:https://www.stayed.cn/item/12004

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。