工具 1:Eclipse Java EE IDE for Web Developers. Version: Photon Release (4.8.0). Build id: 20180619-1200
這里涉及到 Apache Commons IO 的基本操作:
Java (二)基於Eclipse配置Commons IO的環境
Java (三)APACHE Commons IO 常規操作
Java (四)APACHE Commons IO 復制文件
初衷:最近在學習 servlet,常常需要在 servlet 中插入 HTML 代碼塊,手寫速度很慢。於是思索着,不如借助其它開發工具(例如 HBuilderX),事先寫好 HTML 代碼,然后自己再寫一個小工具,將 HTML 代碼轉換成自己期望的格式。
新建一個 Java Project,工程結構:
Main.java 文件的內容:
1 package com.mk; 2 3 import java.io.File; 4 import java.io.IOException; 5 import java.util.List; 6 import java.util.Scanner; 7 8 import org.apache.commons.io.FileUtils; 9 10 public class Main { 11 12 public static void main(String[] args) { 13 Scanner scanner = new Scanner(System.in); 14 try { 15 File file = null; 16 while (true) { 17 // 從控制台獲取文件的路徑 18 file = new File(scanner.nextLine()); 19 // System.out.println(file.getAbsolutePath()); 20 // 檢查文件是否存在 21 if (file.exists()) { 22 // 前綴 23 String prefix = "writer.write(\""; 24 // 后綴 25 String suffix = "\");\n"; 26 // 將讀取的每一行存儲在 List 中 27 List<String> lines = FileUtils.readLines(file, "UTF-8"); 28 // 添加特定的字符串到每一行,並重新組合 29 StringBuilder newLines = new StringBuilder(""); 30 for (String line : lines) { 31 newLines.append(prefix + line.replaceAll("\"", "\'") + suffix); 32 } 33 // 從控制台輸出重新組合的字符串 34 System.out.print(newLines.toString()); 35 // 將重新組成的字符串寫入到指定的文件中 36 // FileUtils.write(new File("copy_" + file.getName()), newLines.toString(), "utf-8", false); 37 break; // 轉換成功之后退出,否則繼續 38 } else { 39 System.out.println("The file does not exist!"); 40 } 41 } 42 } catch (IOException e) { 43 e.printStackTrace(); 44 } 45 // 關閉 scanner 46 scanner.close(); 47 } 48 }
index.html 文件的內容(這個文件是用於測試):
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>登錄</title> 6 </head> 7 <body> 8 <form action="login" method="post"> 9 <input type="text" name="username" value="" placeholder="用戶名" /> 10 <br /> 11 <input type="password" name="password" value="" placeholder="密碼" /> 12 <br /> 13 <input type="submit" value="登錄" /> 14 </form> 15 </body> 16 </html>
控制台輸入:
index.html
控制台輸出:
writer.write("<!DOCTYPE html>"); writer.write("<html>"); writer.write(" <head>"); writer.write(" <meta charset='utf-8' />"); writer.write(" <title>登錄</title>"); writer.write(" </head>"); writer.write(" <body>"); writer.write(" <form action='login' method='post'>"); writer.write(" <input type='text' name='username' value='' placeholder='用戶名' />"); writer.write(" <br />"); writer.write(" <input type='password' name='password' value='' placeholder='密碼' />"); writer.write(" <br />"); writer.write(" <input type='submit' value='登錄' />"); writer.write(" </form>"); writer.write(" </body>"); writer.write("</html>");