如果我通过浏览器保存mp3文件,第三方库通常与他合作,如果我通过HTTP摇摆自己,那么第三方库由于没有正确编码而无法工作.
我用这个代码
HttpGet first = new HttpGet(url);
first.addHeader("Content-Type", "audio/mpeg");
HttpResponse response = httpclient.execute(first, localContext);
InputStream instream = response.getEntity().getContent();
StringBuilder sb = new StringBuilder();
BufferedReader r = new BufferedReader(new InputStreamReader(instream));
for (String line = r.readLine(); line != null; line = r.readLine()) {
sb.append(line);
}
instream.close();
String textFile = sb.toString();
BufferedWriter out = new BufferedWriter(new FileWriter("test123.mp3"));
out.write(textFile);
out.close();
Run Code Online (Sandbox Code Playgroud)
怎么了?
也许它编码
您使用Reader/ Writer而不是InputStream/ 将二进制文件视为文本文件OutputStream.该BufferedReader#readLine()吃CRLF字节.
只需直接写入InputStream,OutputStream无需将字节按摩到字符并返回并删除CRLF字节.您也不必再担心字符编码了.
InputStream input = response.getEntity().getContent();
OutputStream output = new FileOutputStream("test123.mp3");
byte[] buffer = new byte[1024];
for (int length = 0; (length = input.read(buffer)) > -1;) {
output.write(buffer, 0, length);
}
output.close();
input.close();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
299 次 |
| 最近记录: |