您的位置:首页 > 产品设计 > UI/UE

javaday52_IO流_打印流PrintStream和序列流SequenceInputStream

2017-05-17 20:48 344 查看
package java_Studing_day52_IO流12_PrintStream;


import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.PrintStream;

一,printStream

public class printStreamDemo {

    public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub

      /*

       * PrintStream:

       * 1.提供了多种打印方法,可以对多种数据类型值进行打印,并保持数据的表示形式,接收什么类型,打印什么类型

       * 2.他不抛IOException

       * 

       * 构造函数接收三种数据类型:

       * 1.字符串路径    打印到路径所对应的文件中

       * 2.File对象    打印到指定目录,(将字符串路径封装)

       * 3.字节输出流    打印到流中

       * 

       * 

       * 

       * 

       * 

       * 

       * ****/

PrintStream out=new PrintStream("printStream.txt");

out.write(609);//打印的int型,int只有8位,所以只打印最低8位到目的地,结果为a

//out.print(97);//将97先变成字符串保持原样将数据打印到目的地

out.close();

    }

}

二,字符打印流,PrintWrite

import java.io.BufferedReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

public class PrintWriterDemo {

    public static void main(String[] args) throws IOException {
/*******
* 字符打印流:
* 构造函数可接收对象:
* 1.字符串路径     打印到文件中
* 2.File对象     打印到指定File对象中
* 3.字节输出流
      打印到字节流中
* 4.字符输出流      打印到字符流中




* */
//开启字符字节转换流流,获取键盘录入
BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));

      

      //打印到系统输出流
PrintWriter out=new PrintWriter(System.out,true);//没有无参构造方法,后边带上Bloean型,如果是true,则自动刷新
PrintWriter out1=new PrintWriter(new FileWriter("out.txt"),true);//字符输出流将文件地址封装起来,后边带上Bloean型,如果是true,则自动刷新

        

       String line =null;

       //读取键盘输入的数据

       while((line=bfr.readLine())!=null){

            if("over".equals(line))

        break;
 //将字符串变成大写打印到目的地:系统输出流

            out1.println(line.toUpperCase());
  //out.println();
  

            //out.flush();

        }

     out.close();

     bfr.close();

        

        

    }

}

三,序列流SequenceInputStream

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.SequenceInputStream;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Enumeration;

import java.util.Iterator;

import java.util.Vector;

/***********************

 * sequenceInputStream:

 * 序列流,作用:将多个流合并到一个流中,并序列化

 * 

 * 

 * 

 * */

public class sequenceInputStream {

    public static void main(String[] args) throws IOException {
/****
* 需求:将1.txt  2.txt  3.txt文件中的信息合并到一个文件中


* */

/**************************方法一*************************/

//新建可增长的对象数组集合,但是vector效率低

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

//添加三个流到集合中

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

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

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

//取到集合的枚举

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

/**************************方法二*************************/

ArrayList<FileInputStream> arr=new ArrayList<FileInputStream>();
arr.add(new FileInputStream
4000
("F:\\1.txt"));
arr.add(new FileInputStream("F:\\2.txt"));
arr.add(new FileInputStream("F:\\3.txt"));

//用迭代器代替枚举
final Iterator<FileInputStream> it=arr.iterator();

//直接调用Collection的静态方法返回一个枚举对象
Enumeration<FileInputStream> en2=Collections.enumeration(arr);

/*********************************************************************************************************
//创造一个枚举对象
Enumeration<FileInputStream> en1=new Enumeration<FileInputStream>(){

//迭代每一个元素   
public boolean hasMoreElements(){
   return it.hasNext();
}
public FileInputStream nextElement(){
   return it.next();
}
};
*******************************************************************************************************************/

//将多个源合并为一个源
SequenceInputStream sis=new  SequenceInputStream(en2);

FileOutputStream fos=new FileOutputStream("f:\\123副本1.txt");

byte[] buf=new byte[1024];
int len=0;

while((len=sis.read(buf))!=-1){
  fos.write(buf);
  
}
fos.close();

        sis.close();

    }

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