2016-07-29 46 views
-1

我正在尝试刷新本地计算机中文件中的数据以进行响应。但在某些时候,我收到了一个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)尝试过,但没有奏效。

+0

哪一行导致IndexOutOfBoundsException? “读”? – Mureinik

+0

yes..the inputstream.read。它没有进入循环 –

+4

请显示完整的堆栈跟踪。 –

回答

0

给代码工作perfectlly;由于没有关于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(); 
    } 
} 
相关问题