Java 读取文件中的每一行,并为每一行插入特定的字符串

工具 1:Eclipse Java EE IDE for Web Developers. Version: Photon Release (4.8.0). Build id: 20180619-1200

这里涉及到 Apache Commons IO 的基本操作:

Java (一)下载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>");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值