读取文本文件,文件中有多个字段信息 读取一个字段信息,到对应的csv文件将包含中这个字段的整行数据删除

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    
    /**
     * 读取txt文件,文件中有多个字段信息 读取一个字段信息,到对应的csv文件中删除这个字段信息所在的那行数据
     * 
     * @author sunhongbin
     */
    
    public class Tool {
    
    	public static void main(String[] args) throws IOException {
    
    		String key, line;
    
    		String path = "E:/DataSet/runRes";
    
    		int count = 0;
    
    		boolean isExists = false;
    
    		ArrayList<String> msgList = new ArrayList<>();
    
    		// 关联路径,删除信息存放的文件
    		File msgFile = new File(path + "/missed.txt");
    
    		InputStreamReader msgReader = new InputStreamReader(new FileInputStream(msgFile), "UTF-8");
    
    		BufferedReader br = new BufferedReader(msgReader);
    
    		while ((key = br.readLine()) != null) {
    			msgList.add(key);
    		}
    
    		br.close();
    
    		// 关联路径,要做修改的文件
    		File recordFile = new File(path + "/record.csv");
    
    		InputStreamReader recordReader = new InputStreamReader(new FileInputStream(recordFile), "UTF-8");
    
    		BufferedReader br2 = new BufferedReader(recordReader);
    
    		while ((line = br2.readLine()) != null) {
    			count++;
    			for (String item : msgList) {
    				if (line.indexOf(item) != -1) {// 说明存在字段,该行不能要
    					isExists = true;
    					System.out.println("第" + count + "行被删除");
    					break;
    				} else {
    					isExists = false;
    				}
    			}
    			if (isExists == false) {
    				createAndWrite(path, line);
    			}
    
    		}
    
    	}
    
    	public static void createAndWrite(String filePath, String msg) throws IOException {
    		/**
    		 * 生成一个文件后往文件里写入内容
    		 */
    
    		File dir = new File(filePath);
    
    		if (!dir.exists()) { // 检查是否存在该路径,没有的话创建路径
    			dir.mkdirs();
    		}
    
    		// 关联文件,检查是否已经有该文件,没有的话在创建
    		File file = new File(filePath + "/replace.csv");
    
    		if (!file.exists()) {
    			boolean isCreate = file.createNewFile();
    			if (isCreate) {
    				System.out.println("创建成功");
    			} else {
    				System.out.println("创建失败");
    			}
    		}
    
    		FileWriter writer = null;
    		try {
    			writer = new FileWriter(file, true);
    			writer.append(msg + "\n");
    			writer.flush();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			if (writer != null) {
    				writer.close();
    			}
    		}
    
    	}
    
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值