您的位置:首页 > 其它

如何将两个文件合并?

2015-04-01 21:31 218 查看
在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();

}


第三种方法,需要用到[b]RandomAccessFile [/b]

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();

}





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: