1.批量下载文件写入到本地指定目录,偶现报错
2.写入文件代码
in = httpURLConnection.getInputStream();
file = new File(audioPath);
if (!file.exists()) {
file.mkdirs();
}
out = new FileOutputStream(audioPath + "/" + audioName);
int index;
byte[] bytes = new byte[1024];
while ((index = in.read(bytes)) != -1) {
out.write(bytes, 0, index);
}
out.flush();
out.close();
3.报错异常
java.io.IOException: Premature EOF
at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:565)
at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:609)
at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:696)
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3375)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3368)
https://blog.csdn.net/qq_39387856/article/details/102382872
out.flush();应该放到while循环外面
while ((index = in.read(bytes)) != -1) {
out.write(bytes, 0, index);
out.flush();
}
分开来写,调试下
while (true) {
index = in.read(bytes); //这里下断点看看
if (index == -1) break;
out.write(bytes, 0, index);
out.flush();
}