我试图通过TCP读取数据到matlab使用Java类。我在网上看到的所有这方面的内容都使用java.io.DataInputStream.readbyte()方法将数据从tcp数据流拉入matlab。对于我试图流式传输的非常大量的数据来说,这太慢了(大约是1000倍)。
我想使用java.io.DataInputStream.read(byte b[])方法会快得多。但是,我似乎不能强迫它工作。
例如,我尝试在matlab中创建java字节数组
jbytes = javaArray('java.lang.Byte',8)
然后创建一个DataInputStream对象并尝试使用read方法
dataInputStream.read(jbytes)
我得到错误:
未找到类“java.io.DataInputStream”的具有匹配签名的方法“read”
根据Matlab文档,我应该可以做到这一点。
谢谢你的帮助。
2条答案
按热度按时间laximzn51#
[8] new byte []; Byte类是原始字节的 Package 器,它是DataInpuStream.read(byte [])的必需参数。
wtlkbnrh2#
这个问题是9年前产生的,但也许我的解决方案会帮助别人。
我写了一个小的 Package 类来读取所有可用的字节到公共缓冲区。
这个文件用javac编译后,你可以在Matlab中使用它,比如: