开发者社区 问答 正文

利用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

展开
收起
蛮大人123 2016-03-26 11:43:57 1895 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    第一种合并方式比较简单,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();
            }
        }
    }
    2019-07-17 19:15:59
    赞同 展开评论
问答分类:
问答地址: