使用输入流数据索引超出范围的异常

时间:2016-07-29 10:36:25

标签: java http spring-mvc java-io stringbuffer

我试图刷新本地计算机中的文件中的数据以进行响应。但在某些时候我得到IndexOutOfBoundsException

FileInputStream inputStream = new FileInputStream(downloadFile);
OutputStream outStream = response.getOutputStream();
byte[] buffer = new byte[4096];
int bytesRead = -1;
while ((bytesRead = inputStream.read(buffer, 0, 4096)) != -1) {
    outStream.write(buffer, 0, bytesRead);
}
inputStream.close();
outStream.close();

以上代码就是我的尝试。给出的downloadFile路径是正确的,它一直有效,直到while循环。但是IndexOutOfBoundsException发生了。我用inputStream.read(buffer)试了一下但是没有用。

1 个答案:

答案 0 :(得分:0)

让代码完美无缺;因为没有关于response对象的信息我已将OutputStream修改为FileOutputStream;只是为了测试。

以下代码段工作正常。

public class Test
{
    public static void main(String args[]) throws IOException
    {
        FileInputStream inputStream = new FileInputStream("C:\\readme.txt");
        FileOutputStream outputStream = new FileOutputStream("D:\\readme1.txt");
        //OutputStream outStream = response.getOutputStream();
        byte[] buffer = new byte[4096];
        int bytesRead = -1;
        while ((bytesRead = inputStream.read(buffer, 0, 4096)) != -1) {
            outputStream.write(buffer, 0, bytesRead);
        }
        inputStream.close();
        outputStream.close();
    }
}