实际项目中,拿到文本文件如果需要在文件中替换或者添加内容,可以用java.io.RandomAccessFile实现。
原文件内容:
1、最简单的文件末尾添加
需要在网页中添加一个打印网页的按钮,上码
import java.io.RandomAccessFile;
public class MyTest20200405 {
public static void main(String[] args) throws Exception {
try {
String sFilePath = "F:/study/20200520/mytest0520.txt";
RandomAccessFile raf = new RandomAccessFile(sFilePath,"rw");
raf.seek(raf.length());//定位到文件末尾
String sAddStr = "<input type='button' name='print' value='打印' onclick='pagePrint()'>";
sAddStr += "<script language='javascript'>"
+ "function pagePrint(){"
+ "document.all('print').style.display='none';"
+ "window.print();"
+ "}"
+ "</script>";
raf.write(sAddStr.getBytes("UTF-8"));//追加新的内容
raf.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
修改后的文件内容
页面效果:
2、在文件内容中间添加
需要先定位添加内容的位置,并将该位置后面的内容临时存起来,再将添加的内容写上去,写完最后在把原来的内容追加上去。
不然会直接把原来的内容覆盖掉。
比如这样:
import java.io.RandomAccessFile;
public class MyTest20200405 {
public static void main(String[] args) throws Exception {
try {
String sFilePath = "F:/study/20200520/mytest0520.html";
RandomAccessFile raf = new RandomAccessFile(sFilePath,"rw");
String sAddStr = "<input type='button' name='print' value='打印' onclick='pagePrint()'>";
sAddStr += "<script language='javascript'>"
+ "function pagePrint(){"
+ "document.all('print').style.display='none';"
+ "window.print();"
+ "}"
+ "</script>";
raf.seek(77);//定位到指定位置
raf.write(sAddStr.getBytes());//追加新的内容
raf.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
覆盖效果
待续。。。。。。