如何将两个文件合并?

在Java面试题中,我们经常会遇到将两个文件合并的题目,这一次我特意认真做了一下这个题目,用了三种方法实现两个文件的合并。

第一种方法:

需要使用到FileInputStream类和FileOutputStream类:

代码如下:

File mergeFile=new File("D:\\eclipse\\merge.txt");
File file1=new File("context.txt");
File file2=new File("words.conf");
if(!mergeFile.exists()){
try {
mergeFile.createNewFile();
FileOutputStream mergeStream=new FileOutputStream(mergeFile);
FileInputStream inputStream1=new FileInputStream(file1);
FileInputStream inputStream2=new FileInputStream(file2);
byte[] b=new byte[100];
while((inputStream2.read(b))!=-1){
mergeStream.write(b);
}
while((inputStream1.read(b))!=-1){
mergeStream.write(b);
}
mergeStream.flush();
} catch (IOException e) {
e.printStackTrace();
}
}

注意:在输出流之后,最好养成flush()的习惯;

第二种方法,需要用到SequenceInputStream和FileInputStream和FileOutputStream

try {
FileOutputStream fileOutputStream=new FileOutputStream(new File("D:\\eclipse\\merge.txt"));
FileInputStream inputStream1=new FileInputStream("context.txt");
FileInputStream inputStream2=new FileInputStream("words.conf");
SequenceInputStream sequenceInputStream=new SequenceInputStream(inputStream2, inputStream1);
byte[] b=new byte[100];
while((sequenceInputStream.read(b))!=-1){
fileOutputStream.write(b);
}
} catch (Exception e) {
e.printStackTrace();
}

第三种方法,需要用到RandomAccessFile 

try {
RandomAccessFile writeFile=new RandomAccessFile(new File("D:\\eclipse\\merge.txt"), "rw");
RandomAccessFile readFile=new RandomAccessFile("context.txt", "r");
RandomAccessFile readFile2=new RandomAccessFile("words.conf", "r");
byte[] b=new byte[100];
while((readFile.read(b))!=-1){
writeFile.write(b);
}
while((readFile2.read(b))!=-1){
writeFile.write(b);
}
} catch (Exception e) {
e.printStackTrace();
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值