Java 读取文件中的每一行,并为每一行插入特定的字符串
工具 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>");
Java 读取文件中的每一行,并为每一行插入特定的字符串的更多相关文章
- IO流的练习5 —— 读取文件中的字符串,排序后写入另一文件中
需求:已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl” 请编写程序读取数据内容,把数据排序后写入ss.txt中. 分析: A:读取文件中的数据 B:把数 ...
- Java将文件中的内容转换为sql语句(和并发定时读取文件)
数据文件内容data.txt {USER_TYPE=1,CREATE_USER=ZHANG,UPDATE_USER=li,OPER_NUM=D001,SRC=2,UPDATE_TIME=2018-11 ...
- 在java中读取文件中的内容
package shi; import java.io.*; public class wenjianIO { public static void main(String agrs[]){ File ...
- [Java]读取文件方法大全(转)
[Java]读取文件方法大全 1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile { /** ...
- java读取文件方法总结
由于最近在做一个关于从手机本地读取格式化的txt文件中的内容,并且把内容放在listview中显示.这样问题来了,就是如何能够遍历已经获取到特定的map中就是一个问题,在网上找了一些资料,找到了一个很 ...
- Java读取word中表格
因为要新建一个站,公司要把word表格的部分行列存到数据库中.之前用java操作过excel,本来打算用java从word表格中读取数据,再存到数据库中,结果因为权限不够,无法访问公司要写的那个数据库 ...
- Java读取文件-BufferedReader/FileReader/InputStreamReader/FileInputStream的关系和区别
一.Java读取和存储文件数据流 Java读取文件,实际是将文件中的字节流转换成字符流输出到屏幕的过程 这里面涉及到两个类:InputStreamReader和OutputStreamWriter ...
- 利用PushbackReader读取文件中某个字符串之前的内容
package File; import java.io.FileReader; import java.io.IOException; import java.io.PushbackReader; ...
- shell awk读取文件中的指定行的指定字段
1.awk功能和实用形式 awk指定读取文件中的某一行的某个字段 awk 可以设置条件来输出文件中m行到n行中每行的指定的k字段,使用格式如下 awk 'NR==m,NR==n {pr ...
随机推荐
- js中map()、some()、every()、filter()的区别
js的Array对象有map.some.every.filter几个方法都能对数组中的每个对象进行处理,但是他们之间的功能又各有差别,所以在记下. map():通过指定函数处理数组的每个元素,并返回处 ...
- 删除MBR分区如何使用光盘恢复
1.备份MBR分区表 dd if=/dev/sda of=/data/mbr.bak bs=1 count=64 skip=446 分区表前512字节分为三部分,第一部分446字节与启动相关 ...
- 初学WebGL引擎-BabylonJS:第6篇-碰撞交错与挑选
[playground]-collisions(碰撞) 先贴官方源码(机器翻译版本) var createScene = function () { var scene = new BABYLON.S ...
- Linux下命令设置别名--alias(同实用于mac)
最近在搞appium自动化脚本编写,过程中经常会使用 uiautomatorviewer这个工具查看UI布局和元素,但是不得不说这个单词太长了.. 如何快速使用,有三个小技巧,分别是: 1.设置好改工 ...
- Unity图文混排
http://blog.csdn.net/akof1314/article/details/49028279 http://blog.csdn.net/akof1314/article/details ...
- 小花梨判连通 (bfs+思维+map统计数量)
如果两个集合存储颜色的情况相同,说明这两个在k个图中都是在一个集合的 学到的点:用map,将vector映射一个整数时,只有vector后面的邻接的数据都一样时,才认为两个vector一样 代码: # ...
- Oracle适配问题解决
问题一:SQL 命令未正确结束 问题二:ORA-00907: 缺失右括号 问题三:mysql函数在Oracle中不适用 问题四:ORA-00936: 缺失表达式 问题五:No serializer f ...
- find 用正则表达式查找符合yyyy-mm-dd-bddd模式的目录
yyyy-dd-mm-bddd模式解释: yyyy:年份,如2020 mm:月份,如03 dd:日期,如22 -b:意为备份,-b为固定字符串 ddd:三位序列号,从001~999 符合此格式的目录名 ...
- python appium app ui 自动化
1.下载Android-SDK.夜神安卓模拟器.Appium.adb命令执行包并配置环境变量 2.打开夜神 3.打开Appium进行配置,配置如下 4.启动命令,到夜神bin目录下执行 adb con ...
- 你还记得 Tomcat 的工作原理么
SpringBoot 就像一条巨蟒,慢慢缠绕着我们,使我们麻痹.不得不承认,使用了 SpringBoot 确实提高了工作效率,但同时也让我们遗忘了很多技能.刚入社会的时候,我还是通过 Tomcat 手 ...