当前位置: 首页 > 编程笔记 >

如何在Java中将输入流转换为字节数组?

吴伟志
2023-03-14
本文向大家介绍如何在Java中将输入流转换为字节数组?,包括了如何在Java中将输入流转换为字节数组?的使用技巧和注意事项,需要的朋友参考一下

Java中的InputStream类提供了read()方法。此方法接受字节数组,并将输入流的内容读取到给定的字节数组。

示例

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
public class StreamToByteArray {
    public static void main(String args[]) throws IOException{    
       InputStream is = new BufferedInputStream(System.in);
       byte [] byteArray = new byte[1024];
       System.out.println("Enter some data");
       is.read(byteArray);      
       String s = new String(byteArray);
       System.out.println("Contents of the byte stream are :: "+ s);
   }  
}

输出结果

Enter some data
hello how are you
Contents of the byte stream are :: hello how are you

替代解决方案

Apache commons提供了一个名为org.apache.commons.io的库,下面是将库添加到项目中的maven依赖项。

<dependency>
    <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.5</version>
</dependency>

该程序包提供了一个称为IOUtils的类。此类的toByteArray()方法接受InputStream对象,并以字节数组的形式返回流中的内容:

示例

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.commons.io.IOUtils;
public class StreamToByteArray2IOUtils {
   public static void main(String args[]) throws IOException{    
      File file = new File("data");
      FileInputStream fis = new FileInputStream(file);
      byte [] byteArray = IOUtils.toByteArray(fis);
      String s = new String(byteArray);
      System.out.println("Contents of the byte stream are :: "+ s);
   }  
}

输出结果

Contents of the byte stream are :: hello how are you
 类似资料:
  • 问题内容: 我正在尝试使用FOP和Java生成PDF文档。 我以字符串而不是文件的形式接收XML。 如何将该XML字符串转换为XML输入流,以便可以调用xslfoTransformer.transform(source,res); 其中source是我的XML字符串作为输入流。 请提供您的建议。 问题答案: 您可能希望将其转换为,而不是。使用StringReader执行此操作。StreamSour

  • 问题内容: 我知道Java不允许无符号类型,所以我想知道它如何将整数转换为字节。假设我有一个值为255的整数a,并且将该整数转换为一个字节。该值表示在字节11111111中吗?换句话说,该值是否更多地视为带符号的8位整数,还是仅直接复制该整数的后8位? 问题答案: 这称为缩小原始转换。根据规格: 将有符号整数缩小为整数类型 T会 简单地丢弃除 n个 最低阶位以外的所有位,其中 n 是用于表示类型

  • 问题内容: 如何将转换为而不进行转换? 我试过了: 但是doc文件与字节不同(字节是 二进制信息 )。例如: 并且是不同的。 PS:UTF-8不起作用,因为它会将一些字节转换为不同的值。我测试了,它不起作用。 PS2:不,我不要。 问题答案: 您需要指定所需的编码,例如UTF-8 并且将是相同的。 要解码,您需要知道使用了哪种编码,以确保可以正确解码。

  • 本文向大家介绍如何在Java中将PDF转换为字节数组?,包括了如何在Java中将PDF转换为字节数组?的使用技巧和注意事项,需要的朋友参考一下 您可以使用FileInputStream类的方法从PDF文件中读取数据,该方法需要字节数组作为参数。 示例 样本.pdf

  • 问题内容: //或将多部分文件保存到数据库的任何其他解决方案。我尝试用这种方式,但出现错误。 问题答案:

  • 问题内容: 我正在从硬件设备读取8字节的数据。我需要将它们转换为数值。我想将它们转换为适合8个字节的长度。我对Java和低级数据类型操作不是很熟悉。我似乎有两个问题(除了几乎没有有关硬件的文档的事实外),这些字节期望是无符号的,所以我无法进行直接整数转换。我不确定它们是什么字节序。 任何意见,将不胜感激。 最终结束了(摘自一个星期前我可能应该已经读过的一些源代码): 问题答案: 对于字节序,请测试