IO输入输出

今天讲解的是IO输入输出流。是对文件的操作。

一、流的分类

a)根据数据流动的方向,可分为输入流(InputStream)和输出流。输入流只能从中读取数据,而不能向其写出数据;输出流则只能向其写出数据,而不能从中读取数据。

b) 根据数据流所关联的是数据源还是其他数据流,可分为节点流和处理流。节点流可以从/向一个特定的地方读/写数据。处理流是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现增强的数据读/写功能,处理流并不直接连接到数据源。

c) 根据传输数据的“颗粒大小”划分,可分为字符流(Character Stream)和字节流(Byte Stream)。

d) 节点流 实例化: FileReader fr=newFileReader("dome.txt") 注意:dome.txt是读取指定的文件名称

处理流  实例化:BufferedReaderbf=new BufferedReader(new FileReader("dome.txt"));注意:BufferedReader 是对输入的缓冲,对数据的连接和封装

二、Reader Writer字符的输入和输出

(1) FileWriter类只有自己的构造函数,此类是在利用构造函数的基础上用于创建文本文档,在创建的过程中可以在当前的路径下,也可以在指定的路径下。

 例如: FileWriter fw=new FileWriter("d:/q/demo.txt");

write(int c):将一个字符写入到流中,write(String):将一个字符串写入到流中。

(2)FileReader的使用

 

  是用来从指定的文本中读取数据,在读取的时候有两种方式,一种是一个字符一个字符的读,另一种是当初数组来读。

a)当在用read()时是一个字符一个字符的读

     int n=fr.read();

    while(n!=-1){

       System.out.print((char)n);//强制类型转换,每读取一个都显示出来

        n=fr.read();

   b) 当在用read(char[] cbuf)是当成数组

    FileReaderfr=null;

    char[] arr=new char[1024];

    try{

       fr=new FileReader("d:\\q\\demo.txt");

       int len=fr.read(arr); //读取的返回值是实际读到的字符数,

       while(len!=-1){

           System.out.println(new String(arr,0,len));

               注意:构建字符串对象,如果字符没有超过1024时,读取的是实际的个数,如果超过1024,则把1024个字符封装成字符数组返回并输出,如果超过1024个字符,

则从第一次保存的字符开始接着读取,知道读完。

           len=fr.read(arr);

       }

    }catch(IOExceptione ){

       System.out.println(e.totring());

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值