简体   繁体   English

如何将一个短数组写入DataOutputStream?

[英]How can I write a short array to a DataOutputStream?

Currently I am writing an array of shorts to a DataOutputStream as follows: 目前我正在向DataOutputStream写一个short数组,如下所示:

for (int i = 0; i < samplesRead; i++)
{
   dos.writeShort(audioBuffer[i]);
}

Is there a way to do it one swoop as opposed per each element? 有没有办法一举一动,而不是每个元素?

Thanks 谢谢

As @Scary Wombat suggested, according to oracle 正如@Scary Wombat建议的那样,据甲骨文说

An object is a class instance or an array. 对象是类实例或数组。

DataOutputStream is for primitive type but not object. DataOutputStream用于基本类型,但不是对象。

You can use ObjectOutputStream to write array to outputstream at one swoop. 您可以使用ObjectOutputStream一次性将数组写入输出流。

For example, 例如,

import java.io.File;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;

    public class Test {
        public static void main(String args[]){
            try{
                short audioBuffer[] = new short[10000];
                ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("test.txt")));
                oos.writeObject(audioBuffer);
                oos.close();
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM