java中如何将两个文件合并到另一个文件

一个文件里写1,2,3,4,5,另一个文件里写6,7,8,9,10,怎么样在第三个文件里打印出1+6,2+7,3+8,4+9,5+10?在线等,急,,谢谢啦... 一个文件里写1,2,3,4,5 ,另一个文件里写6,7,8,9,10,怎么样在第三个文件里打印出1+6,2+7,3+8,4+9,5+10?在线等,急,,谢谢啦 展开
 我来答
samismiling
推荐于2018-03-13 · 知道合伙人软件行家
samismiling
知道合伙人软件行家
采纳数:1340 获赞数:5603

向TA提问 私信TA
展开全部

java可以使用FileChannel快速高效地将多个文件合并到一起,以下是详细代码:

    import static java.lang.System.out;  
    import java.io.FileInputStream;  
    import java.io.FileOutputStream;  
    import java.io.IOException;  
    import java.nio.ByteBuffer;  
    import java.nio.channels.FileChannel;  
    import java.util.Arrays;  

    public class test {  
        public static final int BUFSIZE = 1024 * 8;  
        public static void mergeFiles(String outFile, String[] files) {  
            FileChannel outChannel = null;  
            out.println("Merge " + Arrays.toString(files) + " into " + outFile);  
            try {  
                outChannel = new FileOutputStream(outFile).getChannel();  
                for(String f : files){  
                    FileChannel fc = new FileInputStream(f).getChannel();   
                    ByteBuffer bb = ByteBuffer.allocate(BUFSIZE);  
                    while(fc.read(bb) != -1){  
                        bb.flip();  
                        outChannel.write(bb);  
                        bb.clear();  
                    }  
                    fc.close();  
                }  
                out.println("Merged!! ");  
            } catch (IOException ioe) {  
                ioe.printStackTrace();  
            } finally {  
                try {if (outChannel != null) {outChannel.close();}} catch (IOException ignore) {}  
            }  
        }  
        public static void main(String[] args) {  
            mergeFiles("D:/output.txt", new String[]{"D:/in_1.txt", "D:/in_2.txt", "D:/in_3.txt"});  
        }  
    }
568145421
2012-08-31 · 知道合伙人软件行家
568145421
知道合伙人软件行家
采纳数:1353 获赞数:6756

向TA提问 私信TA
展开全部
你好,代码如下:
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FilesInOneFile {

public static String read(File inFile) throws IOException {
FileReader fr = new FileReader(inFile) ;
char[] ch = new char[1024] ;
int len = fr.read(ch);
fr.close();
return new String(ch, 0, len) ;
}

public static void write(String str, File outFile) throws IOException {
FileWriter fw = new FileWriter(outFile) ;
fw.write(str);
fw.close();
}

public static void main(String[] args) throws IOException {
File inFile1 = new File("d:" + File.separator + "1.txt") ;
File inFile2 = new File("d:" + File.separator + "2.txt") ;
File outFile = new File("d:" + File.separator + "3.txt") ;
String str1 = read(inFile1) ;
String str2 = read(inFile2) ;
String[] strs1 = str1.split(",") ;
String[] strs2 = str2.split(",") ;
StringBuffer sb = new StringBuffer() ;
for (int i=0; i<strs1.length; i++) {
sb.append(strs1[i]);
sb.append("+") ;
sb.append(strs2[i]) ;
if (i != strs1.length-1) {
sb.append(",") ;
}
}
write(sb.toString(),outFile) ;
}
}
追问
谢谢啦,我是java初学者,见谅哈,我写的地址找不到啊?
public static void main(String[] args) throws IOException {
File inFile1 = new File("f:" + File.separator + "wenben1.txt") ;
File inFile2 = new File("f:" + File.separator + "wenben2.txt") ;
File outFile = new File("f:" + File.separator + "wenben3.txt") ;
追答
你必须先创建好文件。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ranxu850502
推荐于2017-11-25
知道答主
回答量:44
采纳率:0%
帮助的人:22.2万
展开全部
你的描述感觉有点不清,貌似这是从两个文件中取出值再做进一步操作?
更多追问追答
追问
恩,不要意思啦,是先从2个文本里按序取出,再在第三个文本中打印出它们的相加之和
追答
哦,而且这两个文本里的数据应该是一一对应的吧,代码就不给你写了,应该很简单,思路:
FileReader 读出第一文件里的数据保存到一个数组里,读出第二个文件里的数据保存到另外一个数组里(我的理解是这两个数据里保存的数据应该是一一对应的,且这两个数据大小一样长),然后对其中一个数据进行循环,在循环里取出第一个数据的数据加上第二个数据的数据(位置一样),然后将结果可以先保存到另外一个数组,也可以直接就将结果写到第3个文本里哦。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式