java提取文字_Java从Txt文本进行数据提取

该Java程序从TXT文件中提取包含MissionID、Command和RFID信息的数据行,然后根据特定条件筛选并存储到新的TXT文件中。程序读取文件,通过BufferedReader和BufferedWriter进行读写操作,将符合要求的数据行写入新文件,并统计RFID个数。
摘要由CSDN通过智能技术生成

packagereadText;importjava.io.BufferedReader;importjava.io.FileReader;importjava.io.BufferedWriter;importjava.io.FileWriter;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importjava.util.LinkedList;importreadText.Compare;public classReadData {public static void main(String[] args) throwsIOException {try{

String dir="Log_2020-12-06_000";

BufferedReader in= new BufferedReader(new FileReader("C:\\机器人Log\\05\\"+dir+".txt"));//打开文件创建数据流

BufferedWriter out = new BufferedWriter(new FileWriter("C:\\机器人Log\\05\\"+dir+"_out.txt"));

BufferedWriter out_rfid= new BufferedWriter(new FileWriter("C:\\机器人Log\\05\\"+dir+"_out_RFID.txt"));

String str;//定义String变量用来保存每一次读到的每一行的数据

int i=0;//行数

int j=0;//RFID个数

int temp=0;

String Date="";

String Missionid="";

String com="";

String rfid1="";

String rfid2="";

ArrayList arraylist =new ArrayList();

List ls=new LinkedList();/*对下面的数据进行筛选*/

while((str=in.readLine())!=null){if(str.contains("MissionID")&&str.contains("Command")&&str.contains("RFID")){//筛选条件

if(str.length()>0){

arraylist.add(str);if(str.contains("PSwapD")){

j=j+2;

Date=str.substring(0, 19);

Missionid=str.substring(43, 58);

com="PSwapD";

rfid1=str.substring(112, 120);

rfid2=str.substring(145, 154);//System.out.println(Date+Missionid+com+rfid1+rfid2);

Compare compare=newCompare(Date,Missionid,com,rfid1,rfid2);//System.out.println(compare.getDate());

ls.add(compare);

}else{

temp=temp+1;

j=j+1;if(str.contains("PD")){

Date=str.substring(0, 19);

Missionid=str.substring(43, 58);

com="PD";

rfid1=str.substring(120, 128);

rfid2="";//System.out.println(Date+Missionid+com+rfid1+rfid2);Compare compare=newCompare(Date,Missionid,com,rfid1,rfid2);//System.out.println(compare.getDate());

ls.add(compare);

}if(str.contains("Pickup")){

Date=str.substring(0, 19);

Missionid=str.substring(43, 58);

com="Pickup";

rfid1=str.substring(113, 122);

rfid2="";//System.out.println(Date+Missionid+com+rfid1+rfid2);

Compare compare=newCompare(Date,Missionid,com,rfid1,rfid2);//System.out.println(compare.getDate());

ls.add(compare);

}if(str.contains("Dropoff")){

Date=str.substring(0, 19);

Missionid=str.substring(43, 58);

com="Dropoff";

rfid1=str.substring(112, 120);

rfid2="";//System.out.println(Date+Missionid+com+rfid1+rfid2);

Compare compare=newCompare(Date,Missionid,com,rfid1,rfid2);//System.out.println(compare.getDate());

ls.add(compare);

}

}

i=i+1;

}

}

}

in.close();for(String s: arraylist){

out.write(s);

out.newLine();

out.flush();

}

System.out.println(ls.size());for(int z=0;z

String rfid=ls.get(z).getDate()+" "+ls.get(z).getMissionid()+" "+ls.get(z).getCom()+" "+ls.get(z).getRfid1()+" "+ls.get(z).getRfid2();

System.out.println(rfid);

out_rfid.write(rfid);

out_rfid.newLine();

out_rfid.flush();

}

out.write("输出完毕,共"+i+"行,"+j+"RFID");

out.close();

out_rfid.close();

System.out.println("输出完毕,共"+i+"行");

System.out.println("输出完毕,共"+j+"个RFID");

System.out.println("输出完毕,共"+temp+"个RFID");

}catch(IOException e) {

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值