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 CenterFile Exchange에서 Call 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