Using Java to convert text content into web pages

  • 2020-04-01 04:23:20
  • OfStack

Starting with a simple file read-write implementation, the readFile method in the FileHelper class is used to read the contents of the file, and the writeFile method is used to write to the file.


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 + "rn";
    }
    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");
  }
}

Then write a WebpageMaker class on top of the FileHelper class, whose createPage method is used to generate the contents of a particular file in a particular web page.
If you want to insert code, you can add code to it.


import java.util.StringTokenizer;


public class WebpageMaker {
  public static String initBegin() {
    String s = "<!doctype html><html><head><title></title></head><body>rn";
    return s;
  }
  public static String initEnd() {
    String s = "rn</body></html>rn";
    return s;
  }
  public static void createPage(String inputfilename, String outputfilename) throws Exception {
    String content = FileHelper.readFile(inputfilename);
    StringTokenizer st = new StringTokenizer(content, "rn");
    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 />rn";
      else 
        ans += "rn";
    }
    ans += initEnd();
    FileHelper.writeFile(ans, outputfilename);
  }
  public static void main(String[] args) throws Exception {
    createPage("D://test.txt", "D://test.html");
  }
}

Sample:
Input file: test.txt


hello world ! 
 Hi everyone :) 
#include 
int main() {
  printf("hello world!n");
  return 0;
}

Output file: test.html


<!doctype html><html><head><title></title></head><body>
hello world ! <br />
 Hi everyone :) <br />
<pre style="background-color:aliceblue">#include <stdio.h>
int main() {
  printf("hello world!n");
  return 0;
}</pre><br />
</body></html>

The effect is as follows:


hello world ! 
 Hi everyone :) 
#include <stdio.h>
int main() {
  printf("hello world!n");
  return 0;
}


Related articles: