java IO流应用总结1

组合流过滤器
FileInputStream没有任何读入数据类型的方法,DataInputStream没有任何从文件中获取数据的方法。
Java使用了一种灵巧的机制来分离这种责任。某些流(如 FileInputStream)可以从文件和其它更外部的位置
获取字节,而其它流(例如 DataInputStream和PrintWriter)可以将字节组装到更有用的数据类型中。
Java程序员必须对二者进行组合


例如:从文件中读入数字
    DataInputStream din = new DataInputStream(new FileInputStream("employee.dat"));
    使用缓冲机制用于文本的输入
    DataInputStream din = new DataInputStream(
    new BufferedInputStream(new FileInputStream("employee.dat")));
   
    有时当多个流连接在一起时,你需要跟踪各个中介流(intermediate stream)
    
    PushbackInputStream pbin = new PushbackInputStream(
    new BufferedInputStream(new FileInputStream("employee.dat")));
    if(pbim.read()!='<')pbin.unread();
   预先浏览并且还可以读入数字
   DataInputStream din = new DataInputStream(
    pbin = new PushbackInputStream(
    new BufferedInputStream(
    new FileInputStream("employee.dat"))));
   
   
   
   文本输入输出
   InputStreamReader in = new InputStreamReader(new FileOutputStream("employee.dat"),"GBK");
   
   FileWriter out = new FileWriter("output.txt");
    || 
   FileWriter out = new FileWriter(new FileOutputStream("output.txt"));
   
   PrintWriter out = new PrintWriter("employee.dat");
    ||
   PrintWriter out = new PrintWriter(new FileWriter("employee.dat"));
   
   
以二进制格式写出数据,需要使用DataOutputStream
以文本格式写出数据,需要使用PrintWriter.
---------------------------------------------
文本的读入的唯一方式BufferedReader类,他拥有一个readLine()方法
二进制格式读入数据DataInputStream
BufferedReader in = new BufferedReader(new FileReader("employee.txt"));
 一个典型的输入循环:
 String line = null;
 while((line = in.readLine())!=null){
  do something with line
 }  




总结:
文本读入写出:
读入:BufferedReader in = new BufferedReader(new FileReader("employee.txt"));
写出:PrintWriter out = new PrintWriter(new FileWriter("employee.txt"));
由于FileReader和FileWriter只能使用默认的字符集,有一定的局限性,所以有时也使用
他们的父类:InputStreamReader和OutputStreamWriter
读入:BufferedReader in = new BufferedReader(
new InputStreamReader(
new FileInputStream("employee.txt","GBK")));
写出:PrintWriter out = new PrintWriter(
new OutputStreamWriter(
new FileInputStream("employee.txt","GBK")));
二进制读入写出:
读入:DataInputStream in = new DataInputSream(
new BufferedInputStream(
new FileInputStream("employee.txt")));
写出:DataOutputStream out = new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream("employee.txt")));




   
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值