是这样的:有一个文件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可以输出结果的牙!真是想不明白,希望哪位高手能指点一下。小弟感激不尽!~

解决方案 »

  1.   

    看了半天没看懂LZ的意思,啥叫“通过A.txt里的“aa”找到B.txt里“KSIW”对应的数据“01”
      

  2.   

    貌似我也没明白,难道里面KSIW是一个Map?
      

  3.   

    A.txt里的"KS IW"中间有个空格!B.txt里的“KSIW”是没有空格,换句话说,通过"KSIW"映射
      

  4.   


    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();
    }
    }
      

  5.   


    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 外面,如果是一行到没什么,多行就出问题了