当前位置: 首页 > 面试题库 >

如何同时使用ByteArrayOutputStream和DataOutputStream(Java)

景远航
2023-03-14
问题内容

我在这里遇到了一个很大的问题,我认为这是因为我不太了解如何使用Java提供的API。

我需要写一个int和一个byte[]到一个byte[]

我想到了使用a DataOutputStream来解决用writeInt(int i)和编写的数据write(byte[] b),并且能够将其放入字节数组中,我应该使用ByteArrayOutputStreammethodtoByteArray().

我知道此类使用Wrapper模式,所以我有两个选择:

DataOutputStream w = new DataOutputStream(new ByteArrayOutputStream());

要么

ByteArrayOutputStream w = new ByteArrayOutputStream(new DataOutputStream());

但在两种情况下,我都“松散”了一种方法。在第一种情况下,我无法访问该toByteArray()方法,在第二种情况下,我无法访问该writeInt()方法。

我应该如何一起使用此类?


问题答案:

像这样:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream w = new DataOutputStream(baos);

w.writeInt(100);
w.write(byteArray);

w.flush();

byte[] result = baos.toByteArray();

实际上,您的第二个版本根本无法使用。DataOutputStream需要在其中写入数据的实际目标流。你做不到new DataOutputStream()。实际上没有像这样的构造函数。



 类似资料:
  • 我正试图解密一个从Azure存储中下载为ByteArrayOutputStream的文件。 我有一个类型为ByteArrayOutputStream的流。我如何解密它并返回解密的ByteArrayOutputStream? 我尝试过使用CipherOutputStream,但我不确定如何使用它。

  • 主要内容:1 什么是Java DataOutputStream,2 Java DataOutputStream的语法,3 Java DataOutputStream的方法,4 Java DataOutputStream的例子1 什么是Java DataOutputStream Java DataOutputStream 类允许应用程序以与机器无关的方式将原始Java数据类型写入输出流。 Java应用程序通常使用数据输出流来写入数据,这些数据以后可以由数据输入流读取。 2 Java DataOut

  • DataOutputStream流允许您将基元写入输出源。 以下是创建DataOutputStream的构造函数。 DataOutputStream out = DataOutputStream(OutputStream out); 一旦掌握了DataOutputStream对象,就会有一个辅助方法列表,可用于编写流或在流上执行其他操作。 Sr.No. 方法和描述 1 public final

  • 我在读这篇文章:http://www.java-tips.org/java-se-tips-100019/120-javax-sound/917-capturing-audio-with-java-sound-api.html我不想写文章之前的所有代码。。。 我需要澄清我的理解,我需要解释关于使用ByteArrayInputStream和ByteArrayOutputStream... 基于完整的

  • 我们的软件使用api(filenet p8),需要配置log4j。我们使用logBack和Spring Boot。我注意到,要在Spring Boot中使用log4j,我们必须排除logBack。这是不可能的。有没有办法在Spring Boot中并行运行log4j和logBack?谢啦

  • 我担心如果在logging.properties中使用相同的文件,log4j和logging.properties可能会导致性能和正确性问题。否则,我将需要为那些不希望在我的情况下创建不同的文件。有没有干净的方法