InputStream表示字节输入流,是抽象类不能被实例化。所有的字节输入流都是它的子类或者间接子类。
ByteArrayInputStream,字节数组输入流,从内存中的字节数组中读取数据,它的数据源是一个字节数组。ByteArrayInputSteam采用了适配器设计模式,把字节数组类型转换为了输入流类型。
使用范例:
public static void main(String[] args) throws IOException {
byte[] buf = new byte[]{23,-9,-1,24,127};
InputStream stream = new ByteArrayInputStream(buf);
int data = stream.read();
while(data != -1){
System.out.println(data);
data = stream.read();
}
}
输出结果:
23
247
255
24
127
注意:
ByteArrayInputStream它只能读取byte数组中的数组,且byte的取值范围在-128~127之间。此输入流在读取字节时进行了转换,byte型-1的二进制表示为:11111111,转换为Int类型时为:00000000 00000000 00000000 11111111,此值为int型的255,所以输出结果为255,-9是同样的道理。
此处做的转换和byte提升为int类型时所做的转换是不一样的。
byte b = -1;
int i = b;
此时i的值依旧为-1.
分享到:
相关推荐
今天我们要深入学习的是Java中的两个重要类:ByteArrayInputStream和ByteArrayOutputStream,它们属于Java.io包,是处理内存中字节数组的流对象。 ByteArrayInputStream是InputStream的一个子类,它允许我们从字节...
位元串流还包括SequenceInputStream、PrintStream、ByteArrayInputStream和ByteArrayOutputStream等。字元串流如Reader和Writer处理字符流,例如InputStreamReader和OutputStreamWriter,FileReader和FileWriter,...
ByteArrayInputStream、ByteArrayOutputStream、FileInputStream、FileOutputStream、FilterInputStream、SequenceInputStream等都是流类的子类,每个子类都提供了不同的流处理功能。 通过这份PPT教案学习,学生...
- **ByteArrayInputStream**:用于处理字节数组的输入流。 - **多线程**:Java多线程允许程序在同一时间执行多个任务,提高了程序的效率和响应速度。 #### 四、Java提高篇 - **正则表达式**:正则表达式是一种强大...
Java IO流是Java平台核心特性之一,它负责在程序与外部资源之间传输数据。这个概念在Java编程中至关重要,...通过学习和实践,开发者可以灵活地处理各种数据输入输出场景,为应用程序提供高效、稳定的数据处理能力。
字节流包括InputStream、OutputStream及其子类,如FileInputStream、ByteArrayInputStream等;字符流包括Reader、Writer及其子类,如BufferedReader、FileReader等。它们分别处理字节和字符,满足不同类型的输入输出...
- `ByteArrayInputStream`和`ByteArrayOutputStream`则用于内存中的字节流操作。 ### 3. 字符流 字符流包括`Reader`和`Writer`类。如: - `FileReader`和`FileWriter`处理文本文件。 - `BufferedReader`和`...
6. ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); 7. System.out.println(bais.available()); 8. DataInputStream dis = new DataInputStream(bais); ``` 这段代码创建了一个...
Java提供了多种字节流的子类,如ByteArrayInputStream、FileInputStream、FilterInputStream等,它们构成了字节输入流的层次结构,输出流类似。字符流则更适合处理文本数据,如StringReader、FileReader、...
- 内存流如ByteArrayInputStream和ByteArrayOutputStream,它们在内存中读写数据,适用于小规模数据操作。 8. **字符编码与解码** - Java默认使用UTF-8编码,InputStreamReader和OutputStreamWriter可以指定字符...
### IO流详解学习 #### 一、概述 IO流(Input/Output Stream)是Java编程语言中用于处理数据输入和输出的重要技术之一。通过IO流,开发者能够与外部世界进行数据交互,包括从文件系统、网络等处读取数据或将数据...
通过学习这部分知识,开发者能够更好地理解Java中对象的状态保存与传递,以及如何处理复杂对象结构的复制问题。在实际项目中,这些技能对于数据持久化、网络通信以及对象拷贝等方面都至关重要。
在字节流中,InputStream是所有输入字节流的抽象基类,常见的子类有ByteArrayInputStream、FileInputStream等。OutputStream是所有输出字节流的抽象基类,其常见子类包括ByteArrayOutputStream、FileOutputStream等...
对于提供的文件"String与InputStream相互转换 - hanqunfeng的专栏 - CSDN博客_files"和"String与InputStream相互转换 - hanqunfeng的专栏 - CSDN博客.html",它们可能是详细的教程或示例代码,可以帮助进一步学习和...
DataInputStream in3 = new DataInputStream(new ByteArrayInputStream(s2.getBytes())); while (true) System.out.println((char) in3.readByte()); ``` **解析:** 1. **创建 `DataInputStream` 对象:** 使用 `...
例如,InputStream是所有字节输入流的基类,包括ByteArrayInputStream、FileInputStream等,它们分别从字节数组、文件等来源读取数据。OutputStream则是所有字节输出流的基类,例如ByteArrayOutputStream、...
常用的节点流包括与文件操作相关的FileInputStream和FileOutputStream,以及处理内存数据的ByteArrayInputStream和ByteArrayOutputStream。处理流则包括BufferedInputStream、BufferedOutputStream、DataInputStream...