天天看點

javaIO流(列印流--和--序列流)

import java.io.BufferedReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.io.SequenceInputStream;

import java.io.Serializable;

public class PrintStreamDemo {

public static void main(String[] args) throws IOException {

//定義讀取流對象,讀取由鍵盤輸入的資料。

BufferedReader buff=new BufferedReader(new InputStreamReader(System.in));

//定義字元列印流對象,接收一個字元輸出流對象。

//接收一個标準輸出流,向控制台輸出字元。

PrintWriter out=new PrintWriter(System.out);

//PrintWriter out=new PrintWriter(new FileWriter("c:\\b.txt",true));

String line =null;

//接收由鍵盤輸入的字元。

while ((line=buff.readLine())!=null)

{

//将over作為結束标志。toUpperCase将小寫字母轉成大寫字母。

if("over".equals(line.toUpperCase()))

break;

//列印字元串,将字元寫入文本中。

out.println(line);

}

out.close();

buff.close();

}

}

//2.序列流:

 //* SequenceInputStream,可以對多個流進行合并。

import java.io.*;

import java.util.Enumeration;

import java.util.Vector;

public class SequenceDemo {

public static void main(String[] args) throws IOException {

//建立一個Vector集合,存取檔案字元讀取流FileInputStream.

Vector<FileInputStream> v=new Vector<FileInputStream>();

//添加三個讀取流對象。

v.add(new FileInputStream("c:\\1.txt"));

v.add(new FileInputStream("c:\\2.txt"));

v.add(new FileInputStream("c:\\3.txt"));

//調用elements方法,将所有的讀取流對象存入枚舉類中。

Enumeration<FileInputStream> en=v.elements();

//使用序列流接收枚舉對象。

SequenceInputStream sis=new SequenceInputStream(en);

//定義一個輸入流對象,建立輸入流操作的文本。

FileOutputStream fos=new FileOutputStream("c:\\4.txt");

//定義一個位元組數組。

byte[] buf=new byte[1024];

int len=0;

//讀取序列流裡的所有字元。

while((len=sis.read(buf))!=-1)

{

//将位元組數組裡的所有字元寫入文本中。

fos.write(buf,0,len);

}

fos.close();

sis.close();

}

}