Ik wil van een bestand bepalen of het een WP bestand is. Daarvoor moet ik de eerste 4 bytes van het bestand bekijken. Ik heb een bestand bekeken met Ultra edit, en ben er daardoor achter gekomen dat een WP bestand altijd begint met de volgende 4 bytes (in hex): FF 57 50 43
Maar, hoe vergelijk ik nu die 4 bytes met de waarden die ik wil hebben?
Ik zat zelf te denken aan het volgende:
resultaat:
260057z.001 is not a WPCorp. file. Expected FF 57 50 43. Found: ffffffff 57 50 43
Dat gaat dus niet goed.Ik gebruik overigens Integer.toHexString() omdat Byte en Short geen toHexString hebben.
Mijn vraag: hoe maak ik het zo dat het wel werkt?
Maar, hoe vergelijk ik nu die 4 bytes met de waarden die ik wil hebben?
Ik zat zelf te denken aan het volgende:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| public File convert(File input, File output){ // check if it's a WPCorp file try { FileInputStream fis = new FileInputStream(input); byte[] bytes = new byte[4]; fis.read(bytes); if (bytes[0] == 0xFF && bytes[1] == 0x57 && bytes[2] == 0x50 && bytes[3] == 0x43){ System.out.println(input.getName()+" is a WPCorp. file"); } else { System.out.println(input.getName()+" is not a WPCorp. file. Expected FF 57 50 43. Found: "+ Integer.toHexString(bytes[0])+" "+ Integer.toHexString(bytes[1])+" "+ Integer.toHexString(bytes[2])+" "+ Integer.toHexString(bytes[3])+" "); } // nog wat niet relevante code } |
resultaat:
260057z.001 is not a WPCorp. file. Expected FF 57 50 43. Found: ffffffff 57 50 43
Dat gaat dus niet goed.Ik gebruik overigens Integer.toHexString() omdat Byte en Short geen toHexString hebben.
Mijn vraag: hoe maak ik het zo dat het wel werkt?