输入输出流的概念

输入输出(I/O)是指程序与外部设备或其他计算机进行交互的操作。几乎所有的程序都具有输入与输出操作,如从键盘上读取数据,从本地或网络上的文件读取数据或写入数据等。通过输入和输出操作可以从外界接收信息,或者是把信息传递给外界。Java把这些输入与输出操作用流来实现,通过统一的接口来表示,从而使程序设计更为简单。

Java流的概念

流(Stream)是指在计算机的输入输出操作中各部件之间的数据流动。按照数据的传输方向,流可分为输入流与输出流。Java语言里的流序列中的数据既可以是未经加工的原始二进制数据,也可以是经过一定编码处理后符合某种特定格式的数据。

1.输入输出流

在Java中,把不同类型的输入输出源抽象为流,其中输入和输出的数据称为数据流(Data Stream)。数据流是Java程序发送和接收数据的一个通道,数据流中包括输入流(Input Stream)和输出流(Output Stream)。通常应用程序中使用输入流读出数据,输出流写入数据。 流式输入、输出的特点是数据的获取和发送均沿数据序列顺序进行。相对于程序来说,输出流是往存储介质或数据通道写入数据,而输入流是从存储介质或数据通道中读取数据,一般来说关于流的特性有下面几点:

  • 先进先出,最先写入输出流的数据最先被输入流读取到。
  • 顺序存取,可以一个接一个地往流中写入一串字节,读出时也将按写入顺序读取一串字节,不能随机访问中间的数据。
  • 只读或只写,每个流只能是输入流或输出流的一种,不能同时具备两个功能,在一个数据传输通道中,如果既要写入数据,又要读取数据,则要分别提供两个流。

2.缓冲流

为了提高数据的传输效率,引入了缓冲流(Buffered Stream)的概念,即为一个流配备一个缓冲区(Buffer),一个缓冲区就是专门用于传送数据的一块内存

当向一个缓冲流写入数据时,系统将数据发送到缓冲区,而不是直接发送到外部设备。缓冲区自动记录数据,当缓冲区满时,系统将数据全部发送到相应的外部设备。当从一个缓冲流中读取数据时,系统实际是从缓冲区中读取数据,当缓冲区为空时,系统就会从相关外部设备自动读取数据,并读取尽可能多的数据填满缓冲区。 使用数据流来处理输入输出的目的是使程序的输入输出操作独立于相关设备,由于程序不需关注具体设备实现的细节(具体细节由系统处理),所以对于各种输入输出设备,只要针对流做处理即可,不需修改源程序,从而增强了程序的可移植性。

I/O流类概述

Java提供了两种类型的输入输出流:一种是面向字节的流,数据的处理以字节为基本单位;另一种是面向字符的流,用于字符数据的处理。字节流(Byte Stream)每次读写8位二进制数,也称为二进制字节流或位流。字符流一次读写16位二进制数,并将其做一个字符而不是二进制位来处理。需要注意的是,为满足字符的国际化表示,Java语言的字符编码采用的是16位的Unicode码,而普通文本文件中采用的是8位ASCⅡ码。

针对一些频繁的设备交互,Java语言系统预定了3个可以直接使用的流对象,分别是:

  • System.in(标准输入),通常代表键盘输入。
  • System.out(标准输出):通常写往显示器。
  • System.err(标准错误输出):通常写往显示器。
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java输入输出流是构建在基础输入输出流之上的一个抽象概念,它提供了对输入输出操作的高级抽象,可以让程序员更加便捷的进行输入输出操作。Java输入输出流提供了丰富的类,可以操作文件、网络、内存、设备等数据源,它们可以按照字节或字符的方式操作数据。 ### 回答2: Java 输入输出流是用于在程序中读取数据和写入数据的机制。在Java中,输入输出流是通过的方式来实现数据的读取和写入。 输入用于从外部获取数据,比如从键盘读取用户输入,或从文件中读取数据。常见的输入有:System.in(标准输入,即键盘输入)、FileInputStream(文件输入,读取文件中的数据)等。通过输入,可以将数据从外部输入到程序中。 输出用于将程序中的数据输出到外部,比如将数据输出到控制台、写入文件等。常见的输出有:System.out(标准输出,即控制台输出)、FileOutputStream(文件输出,将数据写入到文件中)等。通过输出,可以将数据从程序中输出到外部。 Java输入按照读取方式的不同可以分为字节和字符。字节使用字节(8位)为单位进行数据传输,适合处理二进制文件或者文本文件。常见的字节有:InputStream(字节输入)、FileInputStream(文件输入)等。字符使用字符(16位)为单位进行数据传输,适合处理文本文件。常见的字符有:Reader(字符输入)、FileReader(文件字符输入)等。 Java输出同样也按照写入方式的不同可以分为字节和字符。字节使用字节(8位)为单位进行数据传输,适合处理二进制文件或者文本文件。常见的字节有:OutputStream(字节输出)、FileOutputStream(文件输出)等。字符使用字符(16位)为单位进行数据传输,适合处理文本文件。常见的字符有:Writer(字符输出)、FileWriter(文件字符输出)等。 通过使用Java的输入输出流,我们可以在程序中灵活地读取外部数据和将程序数据输出到外部。这为我们处理各种类型的数据提供了方便和灵活性。同时,还需要注意在使用完输入输出流后及时关闭资源,以避免资源泄露和占用。 ### 回答3: Java 的输入输出流是在程序中进行输入输出操作的一种方式,用来实现与外部设备的数据传输。 Java 提供了两种常用的输入输出流:字节和字符。字节以字节为单位进行输入输出,字符以字符为单位进行输入输出。字节适用于二进制文件的读写,如图像、音频等文件;字符适用于文本文件的读写。 Java 的输入用来将外部数据读入程序中,输出用来将程序的数据输出到外部设备中。 常见的字节输入有 InputStream 和其子类,如 FileInputStream,用于从文件中读取字节数据;常见的字符输入有 Reader 和其子类,如 FileReader,用于从文件中读取字符数据。 常见的字节输出有 OutputStream 和其子类,如 FileOutputStream,用于向文件中写入字节数据;常见的字符输出有 Writer 和其子类,如 FileWriter,用于向文件中写入字符数据。 使用输入输出流的基本步骤是:创建输入输出流对象,打开数据源或目标文件,根据需要进行读取或写入操作,关闭。 在读取或写入数据时,可以通过缓冲来提高效率。BufferedInputStream 和 BufferedOutputStream 是字节缓冲的实现类,BufferedReader 和 BufferedWriter 是字符缓冲的实现类。 除了文件输入输出流外,Java 还提供了其他类型的输入输出流,如网络输入输出流和内存输入输出流,用于不同的应用场景。 总之,Java 的输入输出流是一种用于在程序中进行数据读写的方式,提供了丰富的输入输出流类和方法,能够满足不同的需求。熟练掌握输入输出流的使用,对于开发Java应用程序是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值