利用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
…………
大神求解

第一种合并方式比较简单,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();
        }
    }
}

读取两个文件,分别装入两个arraylist,然后循环根据需要得到你要的。
分别是两重循环。

在二楼基础上补充一楼:
/*****
* @author :QZC
* @createDate :2016年1月7日 上午9:15:01
* 函数功能描述:读取两个文件分别装入list,合并输入
* @param source
* @param target
* @param dist
* @throws IOException
*****/
public static void mergeLine(String source,String target,String dist) throws IOException{
File file = new File(target);
BufferedReader reader = new BufferedReader(new FileReader(file));

StringBuffer buffer = new StringBuffer();
buffer.append(" ");
String value = reader.readLine(); //读取行内容
List blist=new ArrayList(); //b集合
while(value!=null){
blist.add(value);
value = reader.readLine();
}
reader.close();

    List<String> alist=new ArrayList<String>();  //a集合
    file = new File(source);
    reader = new BufferedReader(new FileReader(file));
    String aValue=reader.readLine();
    while(aValue!=null){
        alist.add(aValue);
        aValue=reader.readLine();
    }
    reader.close();

    //逐行写入C文件,组合a文件一行+b文件一行
    BufferedWriter bw = new BufferedWriter(new FileWriter(dist));  
    for(String a:alist){
       for(String b:blist){
            bw.write(a+" "+b);
            bw.newLine(); 
        }
        bw.newLine(); //(可有可无,不过为了格式好看还是加上)
    }
    bw.flush();
    bw.close();
}

补充:忘记删除了这两句代码
StringBuffer buffer = new StringBuffer();
buffer.append(" ");