如何将两个文件合并?
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();
}
第一种方法:
需要使用到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();
}
相关文章推荐
- 如何有效合并两个文件:一个是1亿条的用户基本信息,另一个是用户每天看电影连续剧等的记录,5000万条。其中内存只有1G。
- CAD高端操作,如何将两个不同的CAD文件进行合并
- 如何合并两个结构相同的mdb文件?
- 如何将两个hex文件合并
- STM32的两个.bin文件如何合并?
- 如何有效合并两个文件:一个是1亿条的用户基本信息,另一个是用户每天看电影连续剧等的记录,5000万条。其中内存只有1G。
- 如何将Tesseract两个训练文件合并
- 如何有效合并两个文件:一个是1亿条的用户基本信息,另一个是用户每天看电影连续剧等的记录,5000万条。其中内存只有1G。
- 合并两个 Wav 文件的函数
- 合并两个格式相同的wav文件
- 在linux下,如何比较两个目录下的文件(目录比较命令)
- ogre+oFusion+3dsMax如何合并多个骨骼动画文件
- Vc++6.0如何同时打开两个文件
- 源码]java合并两个文件,hashtable去重。
- C#如何实现比较两个文件的内容是否完全相同?
- [VB.NET]vb.net中如何将两个结构不同的DATATABLE合并成一个DATATABLE
- 如何合并数据库文件
- 如何合并两个popupmenu?
- [全程建模]rose工具如何打开两个mdl文件问题
- 多个Excel文件中的多个Sheet合并到一个Excel文件中两个函数