How to get Java byte array into Matlab

12 ビュー (過去 30 日間)
Patrick Berthoud
Patrick Berthoud 2021 年 7 月 17 日
編集済み: Harsh Mahalwar 2024 年 2 月 28 日
Dear All,
I am using a Java DataInputStream to get data over TCPIP. To get the data e.g by the method readFully(byte[] b, int off, int len), I have to pass a byte[] array to the Java method. So far I am using a java class DataInputReader that outputs a byte array (see below). Is there a way to do that (and how) directly in Matlab without calling an external java class ? In other word, how a pass to a java class a handle to a Matlab array ?
Thanks for your help
Patrick
****
import java.io.*;
class DataInputReader {
private DataInput m_data_input;
public DataInputReader(DataInput data_input) {
m_data_input = data_input;
}
public byte[] readBuffer(int length) {
byte[] buffer = new byte[length];
try {
m_data_input.readFully(buffer, 0, length);
}
catch (StreamCorruptedException e) {
System.out.println("Stream Corrupted Exception Occured");
buffer = new byte[0];
}
catch (EOFException e) {
System.out.println("EOF Reached");
buffer = new byte[0];
}
catch (IOException e) {
System.out.println("IO Exception Occured");
buffer = new byte[0];
}
return buffer;
}
}

回答 (1 件)

Harsh Mahalwar
Harsh Mahalwar 2024 年 2 月 28 日
編集済み: Harsh Mahalwar 2024 年 2 月 28 日
Hi Patrick,
As I can understand, you are trying to implement the “DataInputReader” class into MATLAB. Also, you are interested in understanding how to retrieve Java byte arrays in MATLAB.
Please refer to the following MathWorks documentation for more information on handling data in Java:
You can import Java datatypes into MATLAB and use them along with your MATLAB arrays, here’s an example:
import java.lang.*
sampleArray = javaArray('java.lang.Byte', 1, 19);
for i = 1:numel(sampleArray(1, :))
sampleArray(1, i) = Byte(randi(100, 1));
end
The above MATLAB script creates a sample Java ByteArray (in MATLAB Java ByteArrays use int8 datatype).
Please refer to the following MathWorks documentation for more information on classes and error handling in MATLAB:
I hope this helps, thanks!

カテゴリ

Help Center および File ExchangeCall Java from MATLAB についてさらに検索

タグ

製品


リリース

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by