【Java】file操作-删除文件中某一行中符合某一规则的
2021/10/15 14:14:20
本文主要是介绍【Java】file操作-删除文件中某一行中符合某一规则的,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
效果
此处规则,删除已空格分隔的域名行,为防止因制表符等引起误删,强制插入的规则空格分隔 同时要过滤掉# 和其他非自己插入的数据格式,避免误删
代码
package com.ths.arsenaldnsnginxconfig.test; import java.io.BufferedReader; import java.io.FileReader; import java.io.File; import java.io.FileWriter; import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintWriter; public class FileUtil { public void removeLineFromFile(String file, String lineToRemove) { try { File inFile = new File(file); if (!inFile.isFile()) { System.out.println("Parameter is not an existing file"); return; } //Construct the new file that will later be renamed to the original filename. File tempFile = new File(inFile.getAbsolutePath() + ".tmp"); BufferedReader br = new BufferedReader(new FileReader(file)); PrintWriter pw = new PrintWriter(new FileWriter(tempFile)); String line = null; //Read from the original file and write to the new //unless content matches data to be removed. // 考虑注解行 跳过 ,正常行 空格长度不一致正则尝试 while ((line = br.readLine()) != null) { if (!findRealmName(line, lineToRemove)) { pw.println(line); pw.flush(); } } pw.close(); br.close(); //Delete the original file if (!inFile.delete()) { System.out.println("Could not delete file"); return; } //Rename the new file to the filename the original file had. if (!tempFile.renameTo(inFile)) System.out.println("Could not rename file"); } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } } /** * 查找完全匹配的域名 */ private boolean findRealmName(String line, String s){ System.out.println("当前行情况"+line); if (line.contains("\t")) { System.out.println("当前行有制表符"); } if (line.contains("#") || line.trim().isEmpty() || !line.contains(" ") || line.contains("\t")) return false; String[] sArr = line.trim().split(" "); System.out.println("切割到的空格后字符串"+ sArr[1]); String realmName = sArr[1].substring(0, sArr[1].lastIndexOf('.')); System.out.println("匹配到的字符串" + realmName); if (s.equals(realmName)) return true; return false; } public static void main(String[] args) { FileUtil util = new FileUtil(); util.removeLineFromFile("D:/about/dns/test.txt", "hub.cn"); } }
这篇关于【Java】file操作-删除文件中某一行中符合某一规则的的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-29RocketMQ底层原理资料详解:新手入门教程
- 2024-11-29RocketMQ源码资料解析与入门教程
- 2024-11-29[开源]6.1K star!这款电视直播源神器真的太赞啦!
- 2024-11-29HTTP压缩入门教程:轻松提升网页加载速度
- 2024-11-29JWT开发入门指南
- 2024-11-28知识管理革命:文档软件的新玩法了解一下!
- 2024-11-28低代码应用课程:新手入门全攻略
- 2024-11-28哪些办公软件适合团队协作,且能够清晰记录每个阶段的工作进展?
- 2024-11-28全栈低代码开发课程:零基础入门到初级实战
- 2024-11-28拖动排序课程:轻松掌握课程拖动排序功能