Add some sugar to KIP1 and Converter
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
373d254b6a
commit
0b2548da92
2 changed files with 21 additions and 5 deletions
|
@ -47,12 +47,20 @@ public class Converter {
|
|||
return ByteBuffer.wrap(holder).order(ByteOrder.LITTLE_ENDIAN).getLong();
|
||||
}
|
||||
|
||||
public static String byteArrToHexStringAsLE(byte[] bArr){
|
||||
if (bArr == null)
|
||||
public static String byteArrToHexStringAsLE(byte[] array){
|
||||
return byteArrToHexStringAsLE(array, false);
|
||||
}
|
||||
public static String byteArrToHexStringAsLE(byte[] array, boolean upperCase){
|
||||
if (upperCase)
|
||||
return byteArrToHexStringAsLE(array, "%02X");
|
||||
return byteArrToHexStringAsLE(array, "%02x");
|
||||
}
|
||||
private static String byteArrToHexStringAsLE(byte[] array, String format){
|
||||
if (array == null)
|
||||
return "";
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (byte b: bArr)
|
||||
sb.append(String.format("%02x", b));
|
||||
for (byte b: array)
|
||||
sb.append(String.format(format, b));
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ public class KIP1Provider extends ExportAble {
|
|||
|
||||
private long startOffset;
|
||||
private long endOffset;
|
||||
private long size;
|
||||
|
||||
public KIP1Provider(String fileLocation) throws Exception{
|
||||
this.producer = new InFileStreamClassicProducer(Paths.get(fileLocation));
|
||||
|
@ -58,17 +59,24 @@ public class KIP1Provider extends ExportAble {
|
|||
this.endOffset = HEADER_SIZE + kip1StartOffset +
|
||||
header.getTextSegmentHeader().getSize() + header.getRoDataSegmentHeader().getSize() +
|
||||
header.getRwDataSegmentHeader().getSize() + header.getBssSegmentHeader().getSize();
|
||||
size = endOffset - startOffset;
|
||||
}
|
||||
|
||||
public KIP1Header getHeader() { return header; }
|
||||
|
||||
public long getStartOffset() { return startOffset; }
|
||||
public long getEndOffset() { return endOffset; }
|
||||
public long getSize(){ return size; }
|
||||
|
||||
public boolean export(String saveTo) throws Exception{
|
||||
stream = producer.produce();
|
||||
return export(saveTo, header.getName()+".kip1", startOffset, endOffset - startOffset);
|
||||
return export(saveTo, header.getName()+".kip1", startOffset, size);
|
||||
}
|
||||
|
||||
public InFileStreamClassicProducer getStreamProducer() throws Exception{
|
||||
return producer.getSuccessor(startOffset, true);
|
||||
}
|
||||
|
||||
public boolean exportAsDecompressed(String saveToLocation) throws Exception{
|
||||
return Kip1Unpacker.unpack(header, producer.getSuccessor(startOffset, true), saveToLocation);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue