专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

InputStream使用方法(inputstream工作原理介绍)

来源:小易整编  作者:小易  发布时间:2023-02-07 12:28
摘要:InputStream使用方法(inputstream工作原理介绍)Java中的I/O操作,使用流(stream)的概念来介绍。分为输入流InputStream和Reader,输出流OutputStream和Writer作为基类。Java中...

如果已经读取到末尾,就会返回 -1 ,所以 -1 可以用来表示读取完毕。

需要注意的是真正读取的方法是一个 native 方法。

private native int readBytes(byte b[], int off, int len) throws IOException;

上面定义了一个存放临时缓存的 byte 变量。因为该文件没有超过 1024 直接就读取出来了。 如果把1024 写成 100 并在循环中打印返回数据, 你将会看到区别。

InputStream使用方法(inputstream工作原理介绍)

运行效果:

InputStream使用方法(inputstream工作原理介绍)

AudioInputStream

音频输入流,可以操作指定音频格式和音频长度的输入流。长度使用样本帧而不是字节表示。该类中的方法给出了几种方法从流中读取一定数量的字节或未指定数量的字节。

并且给出了一个操作类 javax.sound.sampled.AudioSystem 来自模块 java.desktop 。

这里只给出该类的基本使用方法, 不延伸 AudioSystem 的使用方法。

定义如下:

public class AudioInputStream extends InputStream

需要先准备一个 wav 的文件, 我这里随便搜索一下系统里面找个 wav 的音频文件。

D:\Program\BaiduNetdisk\sounds\1.wav

演示案例:

import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import javax.sound.sampled.AudioInputStream;import javax.sound.sampled.AudioSystem;import javax.sound.sampled.Clip;public class Input02 {    public static void main(String[] args) {        File file = new File("D:\\Program\\BaiduNetdisk\\sounds\\1.wav");        try (AudioInputStream stream = AudioSystem.getAudioInputStream(file)) {            Clip clip = AudioSystem.getClip();            clip.open(stream);            clip.start();            // 睡眠一会让 clip 播放音频文件。            Thread.sleep(500);        } catch (Exception ex) {            System.out.println(ex.getMessage());        }    }}

使用命名执行,注意要打开你的音响,要不然也听不到,听不出来效果。

javac -encoding utf-8 Input02.java && java Input02

InputStream使用方法(inputstream工作原理介绍)

ByteArrayInputStream

ByteArrayInputStream 包含一个内部缓冲区,其中包含可以从流中读取的字节。 一个内部计数器跟踪由 read 方法提供的下一个字节。 关闭 ByteArrayInputStream 没有任何效果。 可以在关闭流后调用此类中的方法,而不会生成 IOException。

public class ByteArrayInputStream extends InputStream

构造函数有:

InputStream使用方法(inputstream工作原理介绍)

直接演示案例:

byte[] buffer = new byte[] { 0, 2, 4, 6, 8, 1, 3, 5, 7, 9 };try (ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(buffer);) {    System.out.print("Buffer 内容: ");    int i;    while (byteArrayInputStream.available() > 0) {        i = byteArrayInputStream.read();        System.out.print(i + "  ");    }} catch (IOException ex) {    System.out.println(ex.getMessage());}

InputStream使用方法(inputstream工作原理介绍)

FilterInputStream

FilterInputStream 包含一些其他输入流,它用作其基本数据源,可能沿途转换数据或提供附加功能。

public class FilterInputStream extends InputStream

演示代码如下:

InputStream使用方法(inputstream工作原理介绍)

ObjectInputStream

ObjectInputStream 反序列化之前使用 ObjectOutputStream 写入的原始数据和对象。

该类的定义:

public class ObjectInputStream    extends InputStream implements ObjectInput, ObjectStreamConstants

InputStream使用方法(inputstream工作原理介绍)


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/903043_2.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


网络知识
小编:小易整编
相关文章相关阅读
  • 计算机按工作原理可分为什么

    计算机按工作原理可分为什么

    计算机按工作原理可分为数字计算机和模拟计算机。数字式电子计算机是当今世界电子计算机行业中的主流,其内部处理的是一种称为符号信号或数字信号的电信号,它有着运算速度快、运算精度高、通用性强等特点。模拟计算机是根据相似原理,用一种连续变化的模拟量...

  • 有没有录制电脑屏幕的方法

    有没有录制电脑屏幕的方法

    电脑屏幕有录制的方法吗有两个方法一是用win10电脑自带的录屏软件来录,打游戏的时候按一下【win+g】就行了二是用其他的录制软件来录制,比如“迅捷屏幕录像工具”,操作方法如下:1、首先在电脑上将这个工具下载下来。下载完成后打开工具,主页...

  • win7硬件加速设置方法

    win7硬件加速设置方法

    有很多网民在玩一些游戏或运行一些大软件,下载大文件,可能会觉得系统运行不够无忧无虑,这次可以尝试加速硬件。下面的小边将为您介绍如何设置win7的硬件加速方法。1.右击桌面空白处,然后点击右键菜单中的屏幕分辨率选项。2.进入电脑屏幕分辨率设置...

  • 迅雷下载速度慢怎么办-迅雷下载速度慢解决方法

    迅雷下载速度慢怎么办-迅雷下载速度慢解决方法

    迅雷下载速度慢怎么办?迅雷是目前国内用户使用最多的高速下载工具,其速度和效率都是同类下载工具的顶点,但是很多用户在使用的时候却发现迅雷的下载速度很慢,这其实是因为多个不同的问题导致的,那么我们该如何解决呢?下面就由小编为大家带来迅雷下载速度...

  • java中tostring方法的作用是什么

    java中tostring方法的作用是什么

    java中tostring方法的作用是会返回一个【以文本方式表示】此对象的字符串,结果是一个简明但易于读懂的信息表达式。java中tostring方法的作用是toString方法会返回一个“以文本方式表示”此对象的字符串。结果是一个简明但易...

  • 电脑运行内存怎么扩大 秒懂:电脑内存扩大内存的方法

    电脑运行内存怎么扩大 秒懂:电脑内存扩大内存的方法

    电脑运行内存怎么扩大?这是许多电脑用户常常遇到的问题。想要提升电脑运行速度和性能,扩大内存是一个有效的方法。但是,如何扩大内存呢?在本文中,php小编西瓜将为你介绍一些简单又实用的方法,让你秒懂如何扩大电脑内存,提升电脑的运行效率。无论你是...

  • 修复 Windows 11 中 Sxstrace.exe 运行时错误的 5 种方法

    修复 Windows 11 中 Sxstrace.exe 运行时错误的 5 种方法

    windows用户有时会发现启动程序很困难,在这种情况下可能会收到一条错误消息,要求使用命令行sxstrace.exe工具了解更多详细信息。sxstrace.exe由Microsoft于2006年11月首次为Windo...

  • CSS颜色设置方法:HEX、RGB、HSL的简单对比

    CSS颜色设置方法:HEX、RGB、HSL的简单对比

    css中,颜色值有多种表示方法,例如颜色名、十六进制颜色、rgb()、hex()、hsl()等等。那你知道hex、rgb和hsl之间有什么区别吗?下面本篇文章就来给大家简单对比一下hex、rgb、hsl,看看它们区别。不知道你是否了解HE...

  • 周排行
  • 月排行
  • 年排行

精彩推荐