static int readFileFromPhone_chunkSize = 500000; // see #1004128 static byte[] readFileFromPhone(S path) { ret readFileFromPhone(gateway(), path); } static byte[] readFileFromPhone(S ip, S path) { // todo: rough DialogIO io; talkTo_byThread.set(litmap(ip + ":" + 4999, io = talkTo(ip, 4999))); io.noClose = true; try { long n = parseLong(sendToAwareness(ip, "get file * length", path)); if (n != (int) n) fail("Too big to load " + quote(path) + " in memory!! " + n); int l = (int) n; byte[] data = new byte[l]; for (int i = 0; i < l;) { print("[Loading file from phone, " + i + "/" + l + "]"); int len = min(readFileFromPhone_chunkSize, l-i); new Matches m; S answer = sendToAwarenessSilently(ip, "load file * bin from * l *", path, i, len); assertTrue(answer, answer.startsWith("OK ")); System.arraycopy(bytesFromHex(answer.substring(3)), 0, data, i, len); i += len; } ret data; } finally { io.noClose = false; io.close(); talkTo_byThread.set(null); } }
download show line numbers debug dex old transpilations
Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, ddnzoavkxhuk, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1004188 |
Snippet name: | readFileFromPhone - should also work with remote PCs |
Eternal ID of this version: | #1004188/1 |
Text MD5: | 3fbfbf27764595a95878138c26382fbb |
Author: | stefan |
Category: | javax / networking |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2017-01-12 03:18:00 |
Source code size: | 1085 bytes / 32 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 550 / 535 |
Referenced in: | [show references] |