를 사용하여 C/matlab에 의해 생성 된 바이너리 파일을 읽는 방법 :나는 다음과 같은 MATLAB 코드를 사용하여 바이너리 파일을 만든 JAVA
fp = fopen("binary_file.dat", "rb");
int n;
fread(&n, 4, 1, fp);//read 4 bytes
int *x = new int[n];
for (int i = 0; i < n; i++)
{
int t;
fread(&t,4, 1,fp);//read 4 bytes
x[i] = t;
}
......
:
x is an array of int32 numbers
n is the length of x
fid = fopen("binary_file.dat", "wb");
fwrite(fid, n, 'int32');
fwrite(fid, x, 'int32');
fclose(fid);
내가이 파일을 읽기 위해 다음과 같은 C 코드를 사용할 수 있습니다
위의 C 코드는 올바른 결과를 읽을 수 있습니다. 그러나 이제 JAVA에서 이진 파일을 읽고 싶습니다. 내 코드는 다음과 같이 표시됩니다.
DataInputStream data_in = new DataInputStream(
new BufferedInputStream(
new FileInputStream(
new File("binary_file.dat"))));
while(true)
{
try {
int t = data_in.readInt();//read 4 bytes
System.out.println(t);
} catch (EOFException eof) {
break;
}
}
data_in.close();
n + 1 루프 이후에 종료되지만 결과가 올바르지 않습니다. 아무도 나를 도와 줄 수 없어요. 매우 감사합니다!
어떻게 결과가 정확하지 않습니다? 예를 들어'System.out.println (...) '에 주어진'n'의 값은 무엇입니까? –
단지 첫 번째 추측입니다. 어쩌면 엔디안 문제 일 수도 있습니다. – Curd
@ Curd 's line도 함께 생각하고있었습니다. 이미 다른 사람들에게 유용 할 수 있기 때문에 답을 직접 풀어 본다면 답을 자유롭게 게시 할 수 있습니다. –