私はCで書かれたバイナリファイルを持っていて、それをjavaで読みたいと思います。私はBinaryFile
クラスhttp://www.heatonresearch.com/code/22/BinaryFile.javaを使用して、私はこれを行うJavaではJavaでCで書かれたファイルから読んでください
void Log(TCHAR *name,int age){
write_int(file, 2012);
write_int(file, 4);
write_int(file, 16);
write_int(file, 12);
write_int(file, 58);
write_int(file, 50);
fwrite(&name, sizeof(name), 1, file);
fwrite(&age, sizeof(age), 1, file);
fflush(processusFile);
}
:
RandomAccessFile f = new RandomAccessFile("myfile.dat", "r");
BinaryFile binaryFile = new BinaryFile(f);
ArrayList<String> text = new ArrayList<>();
while (true) {
try {
Calendar calendar = new GregorianCalendar();
int year = (int) binaryFile.readDWord();
int month = (int) binaryFile.readDWord();
int date = (int) binaryFile.readDWord();
int hourOfDay = (int) binaryFile.readDWord();
int minute = (int) binaryFile.readDWord();
int second = (int) binaryFile.readDWord();
calendar.set(year, month, date, hourOfDay, minute, second);
System.out.println(binaryFile.readFixedString(64));
catch (Exception e) {
break;
}
}
これは、char型の*のためではなく、それが動作int型のために働いていない私はこのようなCでファイルを書きました。私はどのように文字列を書くことができますか?
を私はCコードでこれをやったとのparams( "テスト名"、44で私の関数を呼び出します)しかし、私はこれを行うときにjava: 'System.out.println(" + length + ">" binaryFile.readFixedString(length)); '私はこれを持っています:> 8>?@ – jadou
@khelch I文字列を読む前に長さを読んでいるとします。 – dasblinkenlight
はい私はSystem.outの前に 'int length =(int)binaryFile.readDWord();'を持っています – jadou