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?在线等,急,,谢谢啦
展开
展开全部
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"});
}
}
展开全部
你好,代码如下:
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) ;
}
}
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") ;
追答
你必须先创建好文件。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的描述感觉有点不清,貌似这是从两个文件中取出值再做进一步操作?
更多追问追答
追问
恩,不要意思啦,是先从2个文本里按序取出,再在第三个文本中打印出它们的相加之和
追答
哦,而且这两个文本里的数据应该是一一对应的吧,代码就不给你写了,应该很简单,思路:
FileReader 读出第一文件里的数据保存到一个数组里,读出第二个文件里的数据保存到另外一个数组里(我的理解是这两个数据里保存的数据应该是一一对应的,且这两个数据大小一样长),然后对其中一个数据进行循环,在循环里取出第一个数据的数据加上第二个数据的数据(位置一样),然后将结果可以先保存到另外一个数组,也可以直接就将结果写到第3个文本里哦。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询