java.io.IOException: Premature EOF异常怎么解决

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();
}