黑马程序员——Java基础-IO流

------- android培训java培训、期待与您交流! ----------

Java中的io流

形象的理解可以类比水流,Java中io流是输送数据的方式。从不同角度进行分类有

1、根据数据流方向不同可以分为输入流(InputStream、Reader)、输出流(OutputStream、Writer)

2、根据数据流单位不同可以分为字节流(InputStream、OutputStream)、字符流(Reader、Writer)。

3、根据是否使用缓冲技术可以分为节点流(InputStream、OutputStream、Reader、Writer)、处理流(BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter)

 

流的操作规律

最痛苦的就是流对象有很多,不知道该用哪个

通过三个明确来完成

1、明确源和目的

源:输入流,InputStream、Reader

目的:输出流,OutputStream、Writer

2、操作的数据是否是纯文本

是:字符流Reader、Writer

不是:字节流 InputStream、OutputStream

3、当体系明确后,再明确要使用哪个具体的对象

通过设备来进行区分

源设备

键盘     system.in    硬盘     File    内存    ByteArrayInputStream

目的设备

控制台   system.out 硬盘     File     内存   ByteArrayOutputStream

4、最后一般都加入缓冲技术转变为处理流,主要是避免频繁访问硬盘提高数据访问效率。处理流中的字节处理流(BufferedInputStream、BufferedOutputStream)较少用,通过转换方法可以使得字节流和字符流之间能相互转化,InputStreamReader是字节流向字符流转换的桥梁,OutputStreamWriter是字符流转换成字节流的桥梁。

IO流练习代码

import java.io.*;
class TransStream
{
     public static void main(String[] args)throws IOException
     {
          //定义获取键盘输入对象
          InputStream in=System.in;         
          //将获取键盘输入对象转换成字符流对象
          InputStreamReader isr=new InputStreamReader(in);         
          //定义字符流对象的缓冲区
          BufferedReader bufr=new BufferedReader(isr);
          //BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));//以上三句合成一句
                   
          BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(System.out));//新建处理流对象,简化书写
          String line=null;
          while((line=bufr.readLine())!=null)//获取键盘输入
          {
               if(line.equals("over"))//自定义输入结束标志
                    break;
               bufw.write(line.toUpperCase());//将输入字符转换为大写输出
               bufw.newLine();//输出换行
               bufw.flush();//把缓冲区的内容刷出来
          }              
          bufr.close();//关闭输入流
          bufw.close();//关闭输出流
     }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值