How to get Java byte array into Matlab

12 次查看(过去 30 天)
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