寂寞不孤单 2016-01-06 14:40 采纳率: 16.7%
浏览 1636
已采纳

利用java io操作多个文件

A文件:
A
B
C
D
B文件:
1
2
3
4
利用java io操作A B 文件,得出
C文件:
A 1234
B 1234
C 1234
D 1234

或者
A 1
A 2
A 3
A 4
B 1
B 1
B 2
B 3
B 4
…………
大神求解

  • 写回答

4条回答 默认 最新

  • 毕小宝 博客专家认证 2016-01-06 23:38
    关注

    第一种合并方式比较简单,A文件的逐行+B文件的全部内容,所以可以这样实现:先将B文件读入内存中存入中间变量中,然后逐行遍历A文件写入C文件。
    参考实现如下,合并时注意添加必要的空格:

     import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class FileMerge {
        /**
         * 将源文件和目标文件的内容逐行合并后输出到第三个文件中
         * 合并方式是source 中的每一行+target中所有行
         * 实现方式,先将target全部读入内存,然后逐行遍历source拼接目标内容后写入dist,
         * @param source
         * @param targte
         * @param target
         * @throws IOException 
         */
        public static void merge(String source,String target,String dist) throws IOException{
             //先读取target的内容存入临时变量
             File file = new File(target);
             BufferedReader reader = new BufferedReader(new FileReader(file));
             StringBuffer buffer = new StringBuffer();
             buffer.append(" ");
             String value = reader.readLine();
             while(value!=null){
                 buffer.append(value).append(" ");
                 value = reader.readLine();
             }
             reader.close();
             String targetContent = buffer.toString();
    
             //逐行读取source,组合目标文件source一行+target整个文件内容
             BufferedWriter bw = new BufferedWriter(new FileWriter(dist));
             file = new File(source);
             reader = new BufferedReader(new FileReader(file));
             value = reader.readLine();
             while(value!=null){
                 bw.write(value+targetContent);
                 bw.newLine();
                 value = reader.readLine();
             }
             bw.flush();
             bw.close();
        }
    
        public static void main(String[] args) {
            String a = "src/A.txt";
            String b = "src/B.txt";
            String c = "src/C.txt";
            try {
                merge(a,b,c);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算