我有一个软件允许在javascript文件(.js)中编写附加组件,允许使用Java函数(我不知道这是否常见,我以前从未在javascript文件中看过java调用)
我需要从网络服务器下载二进制文件并将其写入硬盘.我尝试了以下代码:
baseencoder = new org.apache.commons.codec.binary.Base64();
url = new java.net.URL("https://server/file.tgz");
urlConnect = url.openConnection();
urlConnect.setDoInput(true);
urlConnect.setDoOutput(true);
urlConnect.setRequestProperty("authorization","Basic "+ java.lang.String(baseencoder.encodeBase64(java.lang.String( username + ":" + password ).getBytes())));
urlConnect.setRequestProperty("content-type","application/x-www-form-urlencoded");
is = new java.io.DataInputStream(urlConnect.getInputStream());
fstream = new FileWriter("C:\\tmp\\test.tgz");
out = new BufferedWriter(fstream);
while((data = is.read()) != -1){
out.write(data);
}
out.close();
is.close();
Run Code Online (Sandbox Code Playgroud)
生成的文件不再是有效的gzip存档.如果我犯了一个很大的错误,我很抱歉,但我不是程序员,也不太了解Java.
我试图在 shell 脚本中读取 TSV 文件,发现当 IFS 设置为制表时,读取跳过空值。一个例子胜过 1000 字:
$ echo -e "a\tb\tc" | while IFS=$'\t' read v1 v2 v3; do echo "$v1 - $v2 - $v3"; done
a - b - c
Run Code Online (Sandbox Code Playgroud)
这项工作按预期进行
$ echo -e "a\t\tc" | while IFS=$'\t' read v1 v2 v3; do echo "$v1 - $v2 - $v3"; done
a - c -
Run Code Online (Sandbox Code Playgroud)
我本来希望将 $v2 设置为 null,将 $v3 设置为“c”
$ echo -e "a||c" | while IFS=$'|' read v1 v2 v3; do echo "$v1 - $v2 - …Run Code Online (Sandbox Code Playgroud) 我正在尝试这样做:
var myBeacons: [NSUUID: [Int]] = [NSUUID(UUIDString:"74278BDA-B644-4520-8F0C-720EAF059935"): [1,1]]
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
'[NSUUID: [Int]]' is not convertible to '[NSUUID: [Int]]'
Run Code Online (Sandbox Code Playgroud)
如果我做:
var myBeacons2: [String: [Int]] = ["74278BDA-B644-4520-8F0C-720EAF059935": [1,1]]
Run Code Online (Sandbox Code Playgroud)
有用
我错过了什么或看起来像虫子吗?(我正在使用Xcode 7 beta)