字节数组如何转换成字节流数据
时间: 2024-05-06 19:20:50 浏览: 77
字节数组可以通过使用 ByteArrayInputStream 类来转换成字节流数据。该类提供了一个构造函数,接受一个字节数组作为参数,并创建一个新的 ByteArrayInputStream 对象。然后可以使用该对象的 read() 方法来读取字节流数据。
下面是一个示例代码:
```java
byte[] bytes = new byte[] { 0x48, 0x65, 0x6c, 0x6c, 0x6f };
ByteArrayInputStream stream = new ByteArrayInputStream(bytes);
int data;
while ((data = stream.read()) != -1) {
System.out.print((char) data);
}
```
输出结果为:
```
Hello
```
相关问题
将文件字节数组转换为输入流 java
在 Java 中,将字节数组转换为输入流 (InputStream) 可以通过 ` ByteArrayInputStream` 类完成。这个类允许从给定的字节数组创建一个输入流,你可以像处理普通输入流一样读取数据。下面是一个简单的示例:
```java
import java.io.ByteArrayInputStream;
import java.io.InputStream;
byte[] byteArray = ...; // 你的字节数组
InputStream inputStream = new ByteArrayInputStream(byteArray);
// 现在你可以使用inputStream来读取数据,例如:
int bytesRead;
while ((bytesRead = inputStream.read()) != -1) {
System.out.print((char) bytesRead);
}
```
在这个例子中,`ByteArrayInputStream`实例 `inputStream` 代表了原始字节数组的内容,并且你可以通过 `read()` 方法逐字节读取数据。
用字节流读写字符文件 用FileOutputStream将1,2,…,100,这100个数字的每个数字按照字节数组方式写入到文件d:\out3.txt里,然后再用FileInputStream类按照一次读入一个字节数组的方式将d:\out3.txt的内的数据读出来,并输出到屏幕上。 注意:将一个数字以字节数组的方式写入文件时,要将该数字先用String.valueOf()方法转化为字符,然后用String的getBytes()方法变成一个字节数组,然后用FileOutputStream类将字节数组写入到文件中。从文件中读入字符数据时,可以用FileInputStream一次读入一个字节数组,然后把字节数组变成字符串。
好的,以下是用字节流读写字符文件的代码示例:
```java
import java.io.*;
public class ByteStreamDemo {
public static void main(String[] args) throws IOException {
// 将数字写入文件
FileOutputStream fos = new FileOutputStream("d:\\out3.txt");
for (int i = 1; i <= 100; i++) {
String numStr = String.valueOf(i);
byte[] numBytes = numStr.getBytes();
fos.write(numBytes);
}
fos.close();
// 从文件中读取数字并输出到屏幕
FileInputStream fis = new FileInputStream("d:\\out3.txt");
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) != -1) {
String numStr = new String(buffer, 0, len);
System.out.print(numStr);
}
fis.close();
}
}
```
上面的代码使用FileOutputStream将数字1到100写入到文件d:\out3.txt中,然后使用FileInputStream从文件中读取数据并输出到屏幕上。在写入文件时,我们将每个数字转化为字符串,然后将字符串转化为字节数组并写入到文件中。在读取文件时,我们一次读取一个字节数组,并将其转化为字符串输出到屏幕上。
需要注意的是,在读取文件时,我们使用了一个缓冲区(byte数组),这是为了提高效率。每次读取文件时,我们读取的字节数组长度为1024,如果文件中的数据不足1024个字节,就只会读取实际的字节数。同时,我们还需要根据实际读取的字节数来构造字符串,以避免输出多余的空格或换行符。
希望这个示例能够帮助你理解如何使用字节流读写字符文件。
阅读全文