天天看点

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

}

}