欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

将 a.txt 文件中的单词与 b.txt 文件中的单词交替合并到 c.txt 文件 中

程序员文章站 2022-07-09 22:34:44
...
package again;

import java.io.*;


/*
1、编写一个程序,将 a.txt 文件中的单词与
b.txt 文件中的单词交替合并到 c.txt 文件
中,a.txt 文件中的单词用回车符分隔,b.txt
文件中用回车或空格进行分隔
 */
public class Demo01 {
    public static void main(String[] args) throws Exception {
        File aFile = new File("d:/a.txt");
        File bFile = new File("d:/b.txt");
        FileReader frA = new FileReader(aFile);
        FileReader frB = new FileReader(bFile);
        BufferedReader brA = new BufferedReader(frA);
        BufferedReader brB = new BufferedReader(frB);

        String strA = "";
        String resA = "";
        String strB = "";
        String resB = "";
        //分别读取ab文件,然后将内容分别存储到所对应的的字符串中
        while((strA = brA.readLine()) != null){
            resA += strA;
        }
        while((strB = brB.readLine()) != null){
            resB += strB;
        }

        BufferedWriter bw = new BufferedWriter(new FileWriter("d:/c.txt"));
        int i = 0;
        int lenA = resA.length();
        int lenB = resB.length();
        //判断长度,是为了在如果某一个文件的字符串长度多的情况
        int max = lenA>lenB ? lenA : lenB;
        int min = lenA<lenB ? lenA : lenB;
        //定义resStr为了去每次取到的结果然后存储到c中
        String resStr = "";
        //循环i值使其小于长的length,这样会把所有内容遍历,存储
        while (i < max){
            //当i<min时,这时候是取两个文件字符串的共同长度的值
            if (i<min) {
                char a = resA.charAt(i);
                char b = resB.charAt(i);
                resStr = a + "\t" + b + "*";
                bw.write(resStr);
            }else{//else表示现在某一个文件被取完了,但另一个文件仍然有值。
                //判断是哪个文件
                if (lenA >lenB){
                    char a = resA.charAt(i);
                    resStr = a + "\t";
                    bw.write(resStr);
                }else{
                    char b = resB.charAt(i);
                    resStr = b + "*";
                    bw.write(resStr);
                }
            }
            //每次的i++;
            i++;
        }
        //关闭流
        bw.close();
        brA.close();
        brB.close();
        frA.close();
        frB.close();
    }
}