list.get(a)出现只会取到第一个得问题

测试两个文件每一行去除重复,然后打印到第三个文件。

新手代码可读性,性能等差。希望大家指点我的不足,谢谢大家!


  import java.io.*; import java.util.ArrayList; import
   java.util.Iterator; import java.util.List;
   
   public class TwoFileTest {
       int i = 0;
       int j = 0;
       String path1 = "C:\\Users\\Administrator\\Desktop\\file1.txt";
       String path2 = "C:\\Users\\Administrator\\Desktop\\file2.txt";
   
   
       File file1 = new File(path1);
       File file2 = new File(path2);
   
       FileReader fileReader1 = null;
       FileReader fileReader2 = null;
       
       FileWriter fileWriter = null;
       BufferedWriter bufferedWriter = null;
       BufferedReader bufferedReader1 = null;
       BufferedReader bufferedReader2 = null;
       
       List<String> list = new ArrayList<>();
       List<String> list2 = new ArrayList<>();
   
       public void Print(){
           if (file1.exists() && file2.exists()){
               try {
                   fileReader1 = new FileReader(path1);
                   fileReader2 = new FileReader(path2);
                   bufferedReader1 = new BufferedReader(fileReader1);
                   bufferedReader2 = new BufferedReader(fileReader2);
                   
                   //读取两个文件每行得数据
                   while (bufferedReader2.read() != -1 & bufferedReader1.read() != -1){
                       String str1 = null;
                       String str2 = null;
                       str1 = bufferedReader1.readLine();
                       str2 = bufferedReader2.readLine();
                      //当str1获取str2没有值的时候跳出循环
                       if (str1 == null & str2 == null){
                           break;
                       }
                       list.add(str1);
                       list2.add(str2);
                   }
                   
                   i = list.size();
                   j = list2.size();
   		
   		   //如果i>=j那么从行数最小j得文件开始循环然后对比两个每一行得内容,内容相同得字去掉。
   		   //else相反,还没有写。
                   if(i >= j){
                   	//遍历最小得list集合
                       for (int a = 0 ; a < j ; a++){
                           String fileText = "";

                           //这一句出问题了
                           String fileOne = list.get(a);
                           
                           String fileTwo = list2.get(a);
                           System.out.println("One"+fileOne+".........."+a);
                           System.out.println("Two"+fileTwo+".........."+a);
   			   //开始循环list取出来得String值然后对比
                           for (int b = 0; b < fileOne.length();b++){
   
                               try{
                                   String zz = String.valueOf(fileOne.charAt(b));
                                   String cc = String.valueOf(fileTwo.charAt(b));
                                   //如果两个字相同不做任何事情,不相同就放在fileText中
                                   if (zz.equals(cc)){
   
                                   }else{
                                       fileText = fileText + String.valueOf(fileTwo.charAt(b));
                                   }
                               }catch (Throwable e){
                                   System.out.println("出错了....");
                               }
                           }
                           list.add(a,fileText);
                       }
               
                   }else{
   
                   }
   
                   fileWriter = new FileWriter("C:\\Users\\Administrator\\Desktop\\file3.txt");
                   bufferedWriter = new BufferedWriter(fileWriter);
                   Iterator<String> iterator = list.iterator();
                   while(iterator.hasNext()){
                       bufferedWriter.write(iterator.next());
                   }
                   bufferedWriter.close();
   
   
               } catch (FileNotFoundException e) {
                   System.out.println("获取文件失败!");
                   e.printStackTrace();
               } catch (IOException e) {
                   e.printStackTrace();
               }
           }else{
               System.out.println("请检查两个文件是否存在!");
           }
       }
   
       public static void main(String[] args) {
           new TwoFileTest().Print();
       } }
   

结果 :
在这里插入图片描述

无论String fileOne = list.get(a);中得a值怎么变化,取得永远是list.get(0)得这一句

文件file1:
在这里插入图片描述
文件file2

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值