我是靠谱客的博主 长情小松鼠,最近开发中收集的这篇文章主要介绍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

在这里插入图片描述

最后

以上就是长情小松鼠为你收集整理的list.get(a)出现只会取到第一个得问题的全部内容,希望文章能够帮你解决list.get(a)出现只会取到第一个得问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部