是这样的:有一个文件A.txt,A里有内容“aa KS IW BN 123 O1 &@”,另一个文件B.txt,里面的内容是“KSIW 01;abBA 02”,现在就是通过A.txt里的“aa”找到B.txt里“KSIW”对应的数据“01”。编写如下:
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class FileTest {
public static void main(String[] args) throws IOException { File f=new File("E:\\A.txt);
File f1= new File("E:\\B.txt");
FileReader fre=new FileReader(f);
FileReader fre1= new FileReader(f1);
BufferedReader bre=new BufferedReader(fre);
BufferedReader bre1=new BufferedReader(fre1); String str="";
String str1="";
String strbj = ""; while((str=bre.readLine())!=null) //●判断最后一行不存在,为空
{
Pattern p = Pattern.compile("(aa)");
Matcher m = p.matcher(str);
if (m.find()) {
strbj=str.substring(2,5).contcat(str.substring(5,8));
//这一步实现了在A.txt里找到aa对应的“KS IW”,然后整合在一起变成“KSIW”
//System.out.println(strbj);结果是“KSIW”
while((str1=bre1.readLine())!=null){
if(str1.substring(0,2).contentEquals(strbj)){ System.out.println(str1.substring(4,7));
//这一步应该是输出01,才对呀!
} }
} bre.close();
bre1.close();
fre.close();
fre1.close();
}
}
}}结果是运行没有错误,但是没有输出结果,不知道是不是整合字符串出问题了?可是System.out可以输出结果的牙!真是想不明白,希望哪位高手能指点一下。小弟感激不尽!~
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class FileTest {
public static void main(String[] args) throws IOException { File f=new File("E:\\A.txt);
File f1= new File("E:\\B.txt");
FileReader fre=new FileReader(f);
FileReader fre1= new FileReader(f1);
BufferedReader bre=new BufferedReader(fre);
BufferedReader bre1=new BufferedReader(fre1); String str="";
String str1="";
String strbj = ""; while((str=bre.readLine())!=null) //●判断最后一行不存在,为空
{
Pattern p = Pattern.compile("(aa)");
Matcher m = p.matcher(str);
if (m.find()) {
strbj=str.substring(2,5).contcat(str.substring(5,8));
//这一步实现了在A.txt里找到aa对应的“KS IW”,然后整合在一起变成“KSIW”
//System.out.println(strbj);结果是“KSIW”
while((str1=bre1.readLine())!=null){
if(str1.substring(0,2).contentEquals(strbj)){ System.out.println(str1.substring(4,7));
//这一步应该是输出01,才对呀!
} }
} bre.close();
bre1.close();
fre.close();
fre1.close();
}
}
}}结果是运行没有错误,但是没有输出结果,不知道是不是整合字符串出问题了?可是System.out可以输出结果的牙!真是想不明白,希望哪位高手能指点一下。小弟感激不尽!~
解决方案 »
- 请高手看看错在哪
- java下读big5乱码的问题
- java bean异常捕捉的问题,请教高手啊
- jdk1。4。2-09 安装好之后点击java web start 出现:Splash:sysCreateListenerSocket失败信息
- 我是菜鸟,向各位大侠请教个关于java中关于输入输出流的问题
- applet问题: 我用IE加载applet时, 老是出现信息栏的警告提示, 请问有什么办法除去信息栏的警告提示呢?
- 伤心欲绝,再问一贴
- 怎么根据jdbc中select返回结果,处理流程?
- 运行Eclipse出错?
- 请帮我看一下程序问题出在哪里?(小程序)
- 关于在一个类里使用另一个类的成员变量的问题 菜鸟提问
- 求助,一道笔试题,有点不太明白
package com.heardy;import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class FileTest {
public static void main(String[] args) throws IOException {
File f = new File("E:\\A.txt");
File f1 = new File("E:\\B.txt");
FileReader fre = new FileReader(f);
FileReader fre1 = new FileReader(f1);
BufferedReader bre = new BufferedReader(fre);
BufferedReader bre1 = new BufferedReader(fre1);
String str = "";
String str1 = "";
String strbj = "";
while ((str = bre.readLine()) != null) // ●判断最后一行不存在,为空
{
Pattern p = Pattern.compile("(aa)");
Matcher m = p.matcher(str);
if (m.find()) {
strbj = str.substring(3, 5).concat(str.substring(6, 8));
// 这一步实现了在A.txt里找到aa对应的“KS IW”,然后整合在一起变成“KSIW”
// System.out.println("strbj:" + strbj);// 结果是“KSIW”
while ((str1 = bre1.readLine()) != null) {
if (str1.substring(0, 4).contentEquals(strbj)) {
System.out.println(str1.substring(5, 7));
// 这一步应该是输出01,才对呀!
}
}
}
}
bre.close();
bre1.close();
fre.close();
fre1.close();
}
}
strbj = str.substring(3, 5).concat(str.substring(6, 8));
if (str1.substring(0, 4).contentEquals(strbj)) {
System.out.println(str1.substring(5, 7));
这三处不同close()必须在while 外面,如果是一行到没什么,多行就出问题了