本帖最后由 maxwell247 于 2015-9-30 23:29 编辑
/*
SequenceInputStream的练习01 -- 简单串联合并两个输入流。
API说明:
SequenceInputStream 表示其他输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。
以后写IO流的代码还是用eclipse写算了,用editplus真的累死了。
finally块里的关闭流的操作的标准写法,以后不管代码有多麻烦,一定会这么写,养成好习惯重要!
*/
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.SequenceInputStream;
import java.io.IOException;
class SequenceInputStreamDemo01 {
public static void main(String[] args) {
FileInputStream fis1=null;
FileInputStream fis2=null;
SequenceInputStream sis=null;
FileOutputStream fos=null;
try{
fis1=new FileInputStream("stream1.txt");
fis2=new FileInputStream("stream2.txt");
//创建一个SequenceInputStream,合并fis1和fis2
sis=new SequenceInputStream(fis1,fis2);
fos=new FileOutputStream("newText.txt");
int len=0;
byte[] bytes=new byte[1024];
while((len=sis.read(bytes))!=-1){
fos.write(bytes,0,len); //将缓冲区中的数据输出
fos.write("\r\n".getBytes()); //回车换行
}
}catch(IOException e){
e.printStackTrace();
}finally{
// 关闭流
try{
if (fis1!=null){
fis1.close();
}
}catch(IOException e){
e.printStackTrace();
}
try{
if (fis2!=null){
fis2.close();
}
}catch(IOException e){
e.printStackTrace();
}
try{
if (sis!=null){
sis.close();
}
}catch(IOException e){
e.printStackTrace();
}
try{
if (fos!=null){
fos.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
}
}
/*
stream1.txt文件内容:
我们都是好孩子!
*/
/*
stream2.txt文件内容:
请记得我的信仰--黄家驹!
*/
/*
生成的nextText.txt文件内容:
我们都是好孩子!
请记得我的信仰--黄家驹!
*/
|
|