【问题标题】:change byte[] to inputstream?将字节 [] 更改为输入流?
【发布时间】:2012-12-10 11:04:45
【问题描述】:

我正在尝试制作的 android 应用程序中使用两个库。安卓新手。该应用程序用于连接到串行设备并通过终端控制其控制台。

一个库用于设置串行连接、设置波特率等,还可以通过串行写入读取/数据。另一个用于创建终端会话。我的问题在于将这两者结合在一起以使终端连接到串行设备。

在终端库中,我需要提供InputStreamOutputStream 来为终端提供输入和输出。所以我必须调用setTermIn(java.io.InputStream)setTermOut(java.io.OutputStream) 将输入和输出流连接到模拟器。

然而,在串行库中,有两种发送和接收方法,它们处理字节数组。 sendData(byte[] data) 用于发送数据和一个 dataListener 用于接收数据。我必须实现这一点并编写方法 onDataReceived(int id, byte[] data) ,其中 id 是设备的名称。

我没有通过串行发送字节数组的函数的源代码,那么如何将字节数组变成流以发送到我的终端?

编辑:

我认为这应该覆盖它,这就是我想要的?

Private USB2SerialAdapter mSelectedAdapter;

...

public void sendData(byte[] data)
{
//this should echo what I send to the terminal in the correct format
ByteArrayOutputStream bos = new ByteArrayOutputStream(data.length);     

bos.write(data, 0, data.length);

setTermOut(bos);

//send data over serial using original sendData() method
mSelectedAdapter.sendData(data);
}

【问题讨论】:

  • java.io.ByteArrayOutputStream

标签: java android bytearray inputstream libraries


【解决方案1】:

这两个 sn-ps 应该为您提供足够的信息来找到问题的解决方案。

阅读:

byte[] source = ...;
ByteArrayInputStream bis = new ByteArrayInputStream(source);
// read bytes from bis ...

写作

ByteArrayOutputStream bos = new ByteArrayOutputStream();
// write bytes to bos ...
byte[] sink = bos.toByteArray();

【讨论】:

  • @Blacklight 我无法弄清楚如何在评论中格式化代码,所以我编辑了原始问题。谢谢大家。
【解决方案2】:

应该这样做:ByteArrayInputStream, ByteArrayOutputStream

只需查看这些情况下的文档即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 2015-02-02
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多