JAVA数据流概念及标准数据流的实现

1、数据流的概念

计算机程序中,获取数据的方式有多种,比如:程序中直接给出、键盘输入、从数据文件中读取、从数据库中读取、通过网络读取等。
为了更有效地进行数据的输入/输出操作,Java将各种数据源的数据,抽象为“数据流”,及stream。

数据流:是指一组有顺序的、有起点和终端的字节集合,是对输入/输出的总称。

2、数据流的分类:

2.1、根据数据流的流向,可以将其分为输入流和输出流。
输入流的起点被称为源,程序是从指向源的输入流中读取源中的数据。
输入流中的数据只能读,不能写。

输出流的终点被称为目的地,程序通过向输出流中写入数据,把信息传递道目的地。
输出流中的数据只能写,不能读。

输入输出流示意图

2.2、根据数据的传输单位,数据流可以分为字符流和字节流。
字节流(byte stream)以字节为单位,进行数据传输,可用于读写二进制数据。
字节流类一般以InputStream/OutputStream结尾。
字符流(character stream)以字符为单位,进行数据传输,用于处理文本数据,支持Unicode编码。
字符流一般以Reader/Writer结尾。

Java在java.io和java.util.zip包中,提供多种数据流类。

**

3、缓冲区:

**
数据流的操作,会涉及到外部设备,而,外部设备的读写速度比内存的读写速度要慢很多。如果直接在内存和外部设备之间传输数据,会音外部设备的速度限制,使得数据的传输效率变得很慢。在这种情况下,我们使用缓冲区的方法来提高内存与外部设备之间的数据传输效率。

缓冲区示意图

缓冲区是在内存中,特地开辟出来的一块用于数据传输的空间。
只有当缓冲区的数据处于空或者满的时候,才会触发系统对外部设备进行写或读操作。
正是由于减少了传输数据时,系统对外部设备的调用次数,减少了调用时间开销,使得数据传输的整体效率提好。

4、Java的标准数据流:

Java的标准数据流分为标准输入流、标准输出流和标准错误输出流等。
Java通过系统类System实现标准输入/输出的功能。System的3个成员in、out和err分别对应于标准输入、标准输出和标准错误输出,其使用如下:

import java.io.IOException;

public class FileClass {

    public static void main(String [] args){
        System.out.println("这里是标准输出流。");
        try{
            System.out.println("请输入一个字符:");
            System.out.println("下面是标准输入流:");
            int a = 0;
            a = System.in.read();
            System.out.println("输入字符的ASCII码为:" + a);
        } catch(IOException e){
            e.printStackTrace();
        }

        System.err.println("这里是标准错误输出流");
    }
}

输出结果如下:

这里是标准输出流。
请输入一个字符:
下面是标准输入流:
b
输入字符的ASCII码为:98
这里是标准错误输出流
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值