java笔记11 流

一、流的定义
流就是程序和设备之间嫁接起来的一根用于数据传输的管道,这个管道上有很多按钮,不同的按钮可以实现不同的功能(这根带按钮的用于数据传输的管道就是流,流就是一根管道)。
在这里插入图片描述
(有点像c用的fopen和fgets)

二、流的分类标准:

  1. java.io包中定义了多个流类型(类或抽象类)来实现输入/输出功能:可以从不同的角度对其进行分类:
  • 按数据流的方向不同可以分为输入流和输出流;
  • 按处理数据单位不同可以分为字节流和字符流;
  • 按照功能不同可以分为节点流和处理流。
  1. 所有位于java.io包内的流类型都分别继承自以下四种抽象流类型:
字节流字符流
输入流InputStreamReader
输出流OutputStreamWriter

三、四大基本抽象流

  1. InputStream 和OutputStream 读写数据的单位是一个字节
  2. Reader 和Writer 读写数据的单位是一个字符
  3. 在Java中一个字符占两个字节
字节流字符流
输入流InputStreamReader
输出流OutputStreamWriter

(凡是以stream结尾的都是字节流)

  1. InputStream、OutputStream 、Reader、Writer 都是抽象类,或者说都是抽象流,通常使用的都是它们的子类

四、节点流(也叫原始流)和处理流(也叫包裹流)
在这里插入图片描述

  • 流与类的关系:
    如果一个类是用作设备和程序之间的数据传输,则这个类有一个新的名字叫流(流一定是类,但类不一定是流)。

五、InputStream 流中常用的方法

public int read()  throws IOException;
  • 读取一个字节并以整数形式返回,
  • 如果读取到输入流的末尾则返回-1。
public int read(byte b) throws IOException;
  • 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b中。以整数形式返回实际读取的字节数
  • 如果 b的长度为0,则不读取任和字节并返回0;如果因为流位于文尾而没有可用的字节,则返回值-1:
    例如:
FilelnputStream fis = new FilelnputStream("d:llsharellerrorlog.txt");
len=fis.read(buf);
//从fis流所关联的 d:llsharellerrorlogtxt 文件中读取数据,
//并将读取出来的数据写入buf数组中,返回值是实际写入buf数组的字节个数,
//如果读取到文件的结尾,则返回-1
package com.ittanya.demo1;

import java.io.FileReader;
import java.io.IOException;

public class TestFileReader {
    public static void main(String[] args)throws IOException {
        FileReader fr=new FileReader("D:\\ideaProjects\\basic code\\javaday\\src\\com\\ittanya\\demo1\\TestFileReader.java");
        int ch;
        ch=fr.read();
        while(-1!=ch){
            //读的是二进制数据
            System.out.printf("%c",(char)ch);
            ch=fr.read();
        }
        fr.close();
    }
}

运行结果:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值