fix: decode base64-encoded file content
This commit is contained in:
@@ -1,54 +1,177 @@
|
||||
cGFja2FnZSBhbmRyb2lkLnNlcmlhbHBvcnQudXRpbHM7CgppbXBvcnQgYW5kcm9pZC5vcy5IYW5k
|
||||
bGVyOwppbXBvcnQgYW5kcm9pZC5vcy5NZXNzYWdlOwppbXBvcnQgYW5kcm9pZC51dGlsLkxvZzsK
|
||||
CmltcG9ydCBhbmRyb2lkeC5hbm5vdGF0aW9uLk5vbk51bGw7CgppbXBvcnQgamF2YS5pby5GaWxl
|
||||
OwppbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07CmltcG9ydCBqYXZhLmlvLkZpbGVPdXRw
|
||||
dXRTdHJlYW07CmltcG9ydCBqYXZhLmlvLkZpbGVXcml0ZXI7CmltcG9ydCBqYXZhLmlvLklPRXhj
|
||||
ZXB0aW9uOwppbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKaW1wb3J0IGphdmEudXRpbC5jb25j
|
||||
dXJyZW50LkxpbmtlZEJsb2NraW5nUXVldWU7CgpwdWJsaWMgY2xhc3MgQnl0ZVV0aWwgewogICAg
|
||||
cHJpdmF0ZSBzdGF0aWMgY2hhcltdIGhleEFycmF5ID0gIjAxMjM0NTY3ODlBQkNERUYiLnRvQ2hh
|
||||
ckFycmF5KCk7CiAgICAvL0RlZmF1bHQgYnl0ZQogICAgLyoqCiAgICAgKiDlrZfnrKbkuLLovazl
|
||||
rZfoioLmlbDnu4QKICAgICAqCiAgICAgKiBAcGFyYW0gcyDlrZfnrKbkuLIKICAgICAqIEByZXR1
|
||||
cm4g5pWw57uECiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgYnl0ZVtdIGhleFN0cmluZ1RvQnl0
|
||||
ZUFycmF5KFN0cmluZyBzKSB7CiAgICAgICAgaWYgKHMubGVuZ3RoKCkgPCAyKSB7CiAgICAgICAg
|
||||
ICAgIHMgPSAiMCIgKyBzOwogICAgICAgIH0KICAgICAgICBpbnQgbGVuID0gcy5sZW5ndGgoKTsK
|
||||
ICAgICAgICBieXRlW10gZGF0YSA9IG5ldyBieXRlW2xlbiAvIDJdOwogICAgICAgIGZvciAoaW50
|
||||
IGkgPSAwOyBpIDwgbGVuOyBpICs9IDIpIHsKICAgICAgICAgICAgZGF0YVtpIC8gMl0gPSAoYnl0
|
||||
ZSkgKChDaGFyYWN0ZXIuZGlnaXQocy5jaGFyQXQoaSksIDE2KSA8PCA0KSArIENoYXJhY3Rlci5k
|
||||
aWdpdChzLmNoYXJBdChpICsgMSksIDE2KSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBkYXRh
|
||||
OwogICAgfQoKICAgIC8qKgogICAgICog5a2X6IqC5pWw57uE6L2s5a2X56ym5LiyCiAgICAgKgog
|
||||
ICAgICogQHBhcmFtIGhleEJ5dGVzIOaVsOe7hAogICAgICogQHJldHVybiDlrZfnrKbkuLIKICAg
|
||||
ICAqLwogICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4Qnl0ZXNUb1N0cmluZyhieXRlW10gaGV4
|
||||
Qnl0ZXMpIHsKICAgICAgICBjaGFyW10gaGV4Q2hhcnMgPSBuZXcgY2hhcltoZXhCeXRlcy5sZW5n
|
||||
dGggKiAyXTsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGhleEJ5dGVzLmxlbmd0aDsgaisr
|
||||
KSB7CiAgICAgICAgICAgIGludCB2ID0gaGV4Qnl0ZXNbal0gJiAweEZGOwogICAgICAgICAgICBo
|
||||
ZXhDaGFyc1tqICogMl0gPSBoZXhBcnJheVt2ID4+PiA0XTsKICAgICAgICAgICAgaGV4Q2hhcnNb
|
||||
aiAqIDIgKyAxXSA9IGhleEFycmF5W3YgJiAweDBGXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJu
|
||||
IG5ldyBTdHJpbmcoaGV4Q2hhcnMpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgaW50IGhleFN0
|
||||
cmluZ1RvSW50KFN0cmluZyBoZXhTdHJpbmcpIHsKICAgICAgICByZXR1cm4gSW50ZWdlci5wYXJz
|
||||
ZUludChoZXhTdHJpbmcsIDE2KTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGJ5dGVbXSBoZXhT
|
||||
dHJpbmdUb0J5dGVzKFN0cmluZyBoZXhTdHJpbmcpIHsKICAgICAgICBpZiAoaGV4U3RyaW5nID09
|
||||
IG51bGwgfHwgaGV4U3RyaW5nLmVxdWFscygiIikpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7
|
||||
CiAgICAgICAgfQogICAgICAgIGhleFN0cmluZyA9IGhleFN0cmluZy50b1VwcGVyQ2FzZSgpOwog
|
||||
ICAgICAgIGludCBsZW5ndGggPSBoZXhTdHJpbmcubGVuZ3RoKCkgLyAyOwogICAgICAgIGNoYXJb
|
||||
XSBoZXhDaGFycyA9IGhleFN0cmluZy50b0NoYXJBcnJheSgpOwogICAgICAgIGJ5dGVbXSBkID0g
|
||||
bmV3IGJ5dGVbbGVuZ3RoXTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgaSsr
|
||||
KSB7CiAgICAgICAgICAgIGludCBwb3MgPSBpICogMjsKICAgICAgICAgICAgZFtpXSA9IChieXRl
|
||||
KSAoY2hhclRvQnl0ZShoZXhDaGFyc1twb3NdKSA8PCA0IHwgY2hhclRvQnl0ZShoZXhDaGFyc1tw
|
||||
b3MgKyAxXSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZDsKICAgIH0KCiAgICBwdWJsaWMg
|
||||
c3RhdGljIGJ5dGUgY2hhclRvQnl0ZShjaGFyIGMpIHsKICAgICAgICByZXR1cm4gKGJ5dGUpICIw
|
||||
MTIzNDU2Nzg5QUJDREVGIi5pbmRleE9mKGMpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgYnl0
|
||||
ZVtdIGludFRvQnl0ZUFycmF5KGludCBhKSB7CiAgICAgICAgYnl0ZVtdIHJldCA9IG5ldyBieXRl
|
||||
WzRdOwogICAgICAgIHJldFszXSA9IChieXRlKSAoYSAmIDB4RkYpOwogICAgICAgIHJldFsyXSA9
|
||||
IChieXRlKSAoKGEgPj4gOCkgJiAweEZGKTsKICAgICAgICByZXRbMV0gPSAoYnl0ZSkgKChhID4+
|
||||
IDE2KSAmIDB4RkYpOwogICAgICAgIHJldFswXSA9IChieXRlKSAoKGEgPj4gMjQpICYgMHhGRik7
|
||||
CiAgICAgICAgcmV0dXJuIHJldDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b0hl
|
||||
eChieXRlW10gYnl0ZXMsIGludCBvZmZzZXQsIGludCBsZW5ndGgpIHsKICAgICAgICBjaGFyW10g
|
||||
aGV4Q2hhcnMgPSBuZXcgY2hhcltsZW5ndGggKiAyXTsKICAgICAgICBTdHJpbmdCdWlsZGVyIHN0
|
||||
cmluZ0J1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcigpOwogICAgICAgIGZvciAoaW50IGogPSBv
|
||||
ZmZzZXQ7IGogPCBsZW5ndGggKyBvZmZzZXQ7IGorKykgewogICAgICAgICAgICBpbnQgdiA9IGJ5
|
||||
dGVzW2pdICYgMHhGRjsKICAgICAgICAgICAgaGV4Q2hhcnNbKGogLSBvZmZzZXQpICogMl0gPSBo
|
||||
ZXhBcnJheVt2ID4+PiA0XTsKICAgICAgICAgICAgaGV4Q2hhcnNbKGogLSBvZmZzZXQpICogMiAr
|
||||
IDFdID0gaGV4QXJyYXlbdiAmIDB4MEZdOwogICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
|
||||
ZChoZXhBcnJheVt2ID4+PiA0XSk7CiAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhl
|
||||
eEFycmF5W3YgJiAweDBGXSk7CiAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCJcdCIp
|
||||
OwogICAgICAgIH0KICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhoZXhDaGFycyk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9IZXgoYnl0ZVtdIGJ5dGVzKSB7CiAgICAgICAgcmV0dXJuIHRvSGV4KGJ5dGVzLCAwLCBieXRlcy5sZW5ndGgpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvSGV4KGludCBhQnl0ZSkgewogICAgICAgIHJldHVybiBTdHJpbmcuZm9ybWF0KCIweCUwMlgiLCBhQnl0ZSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBTdHJpbmcgYnl0ZXNUb0hleFdpdGhTcGFjZShieXRlW10gYnl0ZXMpIHsKICAgICAgICBTdHJpbmdCdWlsZGVyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKICAgICAgICBmb3IgKGJ5dGUgYiA6IGJ5dGVzKSB7IHNiLmFwcGVuZChTdHJpbmcuZm9ybWF0KCIlMDJYIiwgYikpOyB9CiAgICAgICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBTdHJpbmcgYnl0ZXNUb0hleFdpdGhTcGFjZShieXRlIGIpIHsKICAgICAgICByZXR1cm4gU3RyaW5nLmZvcm1hdCgiJTAyWCAiLCBiKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBieXRlc1RvSGV4V2l0aE5ld0xpbmUoYnl0ZVtdIGJ5dGVzKSB7CiAgICAgICAgU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CiAgICAgICAgZm9yIChieXRlIGIgOiBieXRlcykgeyBzYi5hcHBlbmQoU3RyaW5nLmZvcm1hdCgiJTAyWCIsIGIpKS5hcHBlbmQoIlxuIik7IH0KICAgICAgICByZXR1cm4gc2IudG9TdHJpbmcoKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGJ5dGUgdG9CeXRlKEludGVnZXIgYnl0ZUludGVnZXIsIGludCBkZWZhdWx0Qnl0ZSkgewogICAgICAgIHJldHVybiBieXRlSW50ZWdlciA9PSBudWxsID8gKGJ5dGUpIGRlZmF1bHRCeXRlIDogYnl0ZUludGVnZXIuYnl0ZVZhbHVlKCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBieXRlIHRvQnl0ZShTdHJpbmcgZmlsZU5hbWUsIGludCBkZWZhdWx0Qnl0ZSkgewogICAgICAgIGlmIChmaWxlTmFtZS5pc0VtcHR5KCkpIHsgcmV0dXJuIChieXRlKSBkZWZhdWx0Qnl0ZTsgfQogICAgICAgIHJldHVybiBCeXRlLnBhcnNlQnl0ZShmaWxlTmFtZSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBBcnJheUxpc3Q8QXJyYXlMaXN0PFN0cmluZz4+IGNhY2hlUmVzdWx0ID0gbmV3IEFycmF5TGlzdDw+KCk7CiAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciByZWFkUiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKICAgIHB1YmxpYyBzdGF0aWMgTGlua2VkQmxvY2tpbmdRdWV1ZTxBcnJheUxpc3Q8U3RyaW5nPj4gdW5ib3VuZGVkUXVldWUgPSBuZXcgTGlua2VkQmxvY2tpbmdRdWV1ZTw+KCk7CgogICAgcHVibGljIHN0YXRpYyB2b2lkIHJlYWRCaW5hcnlGaWxlKFN0cmluZyBmaWxlUGF0aCkgewogICAgICAgIHJlYWRSID0gbmV3IFN0cmluZ0J1ZmZlcigpOwogICAgICAgIGNhY2hlUmVzdWx0LmNsZWFyKCk7CiAgICAgICAgdW5ib3VuZGVkUXVldWUuY2xlYXIoKTsKICAgICAgICB0cnkgewogICAgICAgICAgICBGaWxlIGZpbGUgPSBuZXcgRmlsZShmaWxlUGF0aCk7CiAgICAgICAgICAgIEZpbGVJbnB1dFN0cmVhbSBmaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOwogICAgICAgICAgICBsb25nIGxlbmd0aCA9IGZpbGUubGVuZ3RoKCk7CiAgICAgICAgICAgIGJ5dGVbXSBieXRlcyA9IG5ldyBieXRlWyhpbnQpIGxlbmd0aF07CiAgICAgICAgICAgIGZpcy5yZWFkKGJ5dGVzKTsKICAgICAgICAgICAgZmlzLmNsb3NlKCk7CiAgICAgICAgICAgIGludCBwYXJ0U2l6ZSA9IGJ5dGVzLmxlbmd0aCAvIDEwMjQgLSAxOwogICAgICAgICAgICBpbnQgdG90YWxTaXplID0gMDsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYXJ0U2l6ZTsgaSsrKSB7CiAgICAgICAgICAgICAgICBieXRlW10gbmV3QXJyYXkgPSBuZXcgYnl0ZVsxMDI0XTsKICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZXMsIGkgKiAxMDI0LCBuZXdBcnJheSwgMCwgMTAyNCk7CiAgICAgICAgICAgICAgICBBcnJheUxpc3Q8U3RyaW5nPiB0ZW0gPSBuZXcgQXJyYXlMaXN0PD4oKTsKICAgICAgICAgICAgICAgIGZvciAoYnl0ZSBiIDogbmV3QXJyYXkpIHsgdGVtLmFkZChTdHJpbmcuZm9ybWF0KCIlMDJYIiwgYikpOyB9CiAgICAgICAgICAgICAgICBjYWNoZVJlc3VsdC5hZGQodGVtKTsKICAgICAgICAgICAgICAgIHVuYm91bmRlZFF1ZXVlLmFkZCh0ZW0pOwogICAgICAgICAgICAgICAgdG90YWxTaXplICs9IG5ld0FycmF5Lmxlbmd0aDsKICAgICAgICAgICAgfQogICAgICAgICAgICBieXRlW10gbGFzdEFycmF5ID0gbmV3IGJ5dGVbMTAyNF07CiAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZXMsIHBhcnRTaXplICogMTAyNCwgbGFzdEFycmF5LCAwLCBieXRlcy5sZW5ndGggLSBwYXJ0U2l6ZSAqIDEwMjQpOwogICAgICAgICAgICBBcnJheUxpc3Q8U3RyaW5nPiB0ZW0gPSBuZXcgQXJyYXlMaXN0PD4oKTsKICAgICAgICAgICAgZm9yIChieXRlIGIgOiBsYXN0QXJyYXkpIHsgdGVtLmFkZChTdHJpbmcuZm9ybWF0KCIlMDJYIiwgYikpOyB9CiAgICAgICAgICAgIGNhY2hlUmVzdWx0LmFkZCh0ZW0pOwogICAgICAgICAgICB1bmJvdW5kZWRRdWV1ZS5hZGQodGVtKTsKICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB3cml0ZVN0cmluZ1RvRmlsZShieXRlW10gY29udGVudCwgU3RyaW5nIGZpbGVQYXRoKSB7CiAgICAgICAgdHJ5IChGaWxlT3V0cHV0U3RyZWFtIGZvcyA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGVQYXRoKSkgewogICAgICAgICAgICBmb3Mud3JpdGUoY29udGVudCk7CiAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewogICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOwogICAgICAgIH0KICAgIH0KfQo=
|
||||
package android.serialport.utils;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
|
||||
public class ByteUtil {
|
||||
private static char[] hexArray = "0123456789ABCDEF".toCharArray();
|
||||
//Default byte
|
||||
/**
|
||||
* 字符串转字节数组
|
||||
*
|
||||
* @param s 字符串
|
||||
* @return 数组
|
||||
*/
|
||||
public static byte[] hexStringToByteArray(String s) {
|
||||
if (s.length() < 2) {
|
||||
s = "0" + s;
|
||||
}
|
||||
int len = s.length();
|
||||
byte[] data = new byte[len / 2];
|
||||
for (int i = 0; i < len; i += 2) {
|
||||
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i + 1), 16));
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 字节数组转字符串
|
||||
*
|
||||
* @param hexBytes 数组
|
||||
* @return 字符串
|
||||
*/
|
||||
public static String hexBytesToString(byte[] hexBytes) {
|
||||
char[] hexChars = new char[hexBytes.length * 2];
|
||||
for (int j = 0; j < hexBytes.length; j++) {
|
||||
int v = hexBytes[j] & 0xFF;
|
||||
hexChars[j * 2] = hexArray[v >>> 4];
|
||||
hexChars[j * 2 + 1] = hexArray[v & 0x0F];
|
||||
}
|
||||
return new String(hexChars);
|
||||
}
|
||||
|
||||
public static int hexStringToInt(String hexString) {
|
||||
return Integer.parseInt(hexString, 16);
|
||||
}
|
||||
|
||||
public static byte[] hexStringToBytes(String hexString) {
|
||||
if (hexString == null || hexString.equals("")) {
|
||||
return null;
|
||||
}
|
||||
hexString = hexString.toUpperCase();
|
||||
int length = hexString.length() / 2;
|
||||
char[] hexChars = hexString.toCharArray();
|
||||
byte[] d = new byte[length];
|
||||
for (int i = 0; i < length; i++) {
|
||||
int pos = i * 2;
|
||||
d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
|
||||
}
|
||||
return d;
|
||||
}
|
||||
|
||||
public static byte charToByte(char c) {
|
||||
return (byte) "0123456789ABCDEF".indexOf(c);
|
||||
}
|
||||
|
||||
public static byte[] intToByteArray(int a) {
|
||||
byte[] ret = new byte[4];
|
||||
ret[3] = (byte) (a & 0xFF);
|
||||
ret[2] = (byte) ((a >> 8) & 0xFF);
|
||||
ret[1] = (byte) ((a >> 16) & 0xFF);
|
||||
ret[0] = (byte) ((a >> 24) & 0xFF);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static String toHex(byte[] bytes, int offset, int length) {
|
||||
char[] hexChars = new char[length * 2];
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
for (int j = offset; j < length + offset; j++) {
|
||||
int v = bytes[j] & 0xFF;
|
||||
hexChars[(j - offset) * 2] = hexArray[v >>> 4];
|
||||
hexChars[(j - offset) * 2 + 1] = hexArray[v & 0x0F];
|
||||
stringBuilder.append(hexArray[v >>> 4]);
|
||||
stringBuilder.append(hexArray[v & 0x0F]);
|
||||
stringBuilder.append("\t");
|
||||
}
|
||||
return new String(hexChars);
|
||||
}
|
||||
|
||||
public static String toHex(byte[] bytes) {
|
||||
return toHex(bytes, 0, bytes.length);
|
||||
}
|
||||
|
||||
public static String toHex(int aByte) {
|
||||
return String.format("0x%02X", aByte);
|
||||
}
|
||||
|
||||
public static String bytesToHexWithSpace(byte[] bytes) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (byte b : bytes) { sb.append(String.format("%02X", b)); }
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public static String bytesToHexWithSpace(byte b) {
|
||||
return String.format("%02X ", b);
|
||||
}
|
||||
|
||||
public static String bytesToHexWithNewLine(byte[] bytes) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (byte b : bytes) { sb.append(String.format("%02X", b)).append("\n"); }
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public static byte toByte(Integer byteInteger, int defaultByte) {
|
||||
return byteInteger == null ? (byte) defaultByte : byteInteger.byteValue();
|
||||
}
|
||||
|
||||
public static byte toByte(String fileName, int defaultByte) {
|
||||
if (fileName.isEmpty()) { return (byte) defaultByte; }
|
||||
return Byte.parseByte(fileName);
|
||||
}
|
||||
|
||||
public static ArrayList<ArrayList<String>> cacheResult = new ArrayList<>();
|
||||
public static StringBuffer readR = new StringBuffer();
|
||||
public static LinkedBlockingQueue<ArrayList<String>> unboundedQueue = new LinkedBlockingQueue<>();
|
||||
|
||||
public static void readBinaryFile(String filePath) {
|
||||
readR = new StringBuffer();
|
||||
cacheResult.clear();
|
||||
unboundedQueue.clear();
|
||||
try {
|
||||
File file = new File(filePath);
|
||||
FileInputStream fis = new FileInputStream(file);
|
||||
long length = file.length();
|
||||
byte[] bytes = new byte[(int) length];
|
||||
fis.read(bytes);
|
||||
fis.close();
|
||||
int partSize = bytes.length / 1024 - 1;
|
||||
int totalSize = 0;
|
||||
for (int i = 0; i < partSize; i++) {
|
||||
byte[] newArray = new byte[1024];
|
||||
System.arraycopy(bytes, i * 1024, newArray, 0, 1024);
|
||||
ArrayList<String> tem = new ArrayList<>();
|
||||
for (byte b : newArray) { tem.add(String.format("%02X", b)); }
|
||||
cacheResult.add(tem);
|
||||
unboundedQueue.add(tem);
|
||||
totalSize += newArray.length;
|
||||
}
|
||||
byte[] lastArray = new byte[1024];
|
||||
System.arraycopy(bytes, partSize * 1024, lastArray, 0, bytes.length - partSize * 1024);
|
||||
ArrayList<String> tem = new ArrayList<>();
|
||||
for (byte b : lastArray) { tem.add(String.format("%02X", b)); }
|
||||
cacheResult.add(tem);
|
||||
unboundedQueue.add(tem);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static void writeStringToFile(byte[] content, String filePath) {
|
||||
try (FileOutputStream fos = new FileOutputStream(filePath)) {
|
||||
fos.write(content);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user