将原始数据转换为结构化表

时间:2014-06-13 10:09:18

标签: java hex bytearray endianness hexdump

我使用dd命令

从磁带中提取了原始数据文件

之后,我设法用Bless HexEditor读取提取的数据,我发现在偏移量0x200000处有一个表存储。

我想提取这些数据并将其导入Excel或CSV文件中:

这是以十六进制格式提取的数据的示例,以及在unsigned int little endian中的表示:

//Hex Not.    //Little-Endian unsigned int 32
10 00 00 00   // 84       (Ref Number)  
54 00 00 00   // 70185301 (Ref Number)
55 F1 2E 04   // 20070306 (Date)
A2 3F 32 01   // 15144184 (Time)
F8 14 E7 00   // 20070306 (Date)
A2 3F 32 01   // 15491037 (Time)
DD 5F EC 00   // 1
01 00 00 00   // 1
01 00 00 00   // 4486656
00 76 44 00   // 492
EC 01 00 00   // 1
01 00 00 00   // 814185724
FC 7C 87 30   // 814185728
00 7D 87 30   // 814185732
04 7D 87 30   // 16

表格的新行

10 00 00 00   // 84
54 00 00 00   // 70185301
55 F1 2E 04   // 20070306
A2 3F 32 01   // 15491037
DD 5F EC 00   // 20070306
A2 3F 32 01   // 15534889
29 0B ED 00   // 18
12 00 00 00   // 1
01 00 00 00   // 4486656
00 76 44 00   // 492
EC 01 00 00   // 1
01 00 00 00   // 814185724
FC 7C 87 30   // 814185728
00 7D 87 30   // 814185732
04 7D 87 30   // 16

等等......

我的问题是:

1)你能理解从这段转换后的数据开始如何编码原始文件吗?

2)如何转换此原始文件以创建具有按行排序的此数据的excel或csv文档?

这是我在Java中的尝试:

File fileInputString = new File(inputFileField.getText()); //Get the file in SWING 
FileInputStream fin = new FileInputStream(fileInputString);  
FileOutputStream out = new FileOutputStream(fileDirectoryFolder.getText() +"/"+ fileInputString.getName()); //Create the new converted file 

byte[] fileContent = new byte[(int)fileInputString.length()]; // import the raw data length
fin.read(fileContent); // read the data

for(int i = 0; i < fileContent.length; i++){
   out.write(fileContent[i]); // write the data
}
out.close();

谢谢

0 个答案:

没有答案