2012-05-07 77 views
-1
private static void fileChunking() throws IOException { 
    InputStream is = null; 
    OutputStream os = null; 
    byte[] buffer; 
    int maxBufferSize = 102400; 
    int bytesRead, bytesAvailable, bufferSize; 
    int responsecode = 0; 
    String responsemessage = null; 
    bufferSize = Math.min(content.length, maxBufferSize); 
    buffer = new byte[bufferSize]; 
    bytesRead = is.read(buffer, 0, bufferSize); 
    while (bytesRead > 0) { 
     os.write(buffer, 0, bufferSize); 
     bytesAvailable = is.available(); 
     bufferSize = Math.min(bytesAvailable, maxBufferSize); 
     bytesRead = is.read(buffer, 0, bufferSize); 
    } 

    is.close(); 
    os.flush(); 
    responsecode = con.getResponseCode(); 
    responsemessage = con.getResponseMessage(); 
    System.out.print(responsemessage); 

} 

代码在读取时抛出异常'流已打开' bytesRead = is.read(buffer,0,bufferSize);流已经打开 - 例外

+1

该代码无法执行,因为您从未将“is”设置为非null。什么是真正的代码?注意你不需要那个'Math.min()'东西:'read()'已经有这样的表现。 – EJP

+0

该代码无法编译,因为没有声明名称为“content”的变量。 –

回答

1

您可能已经在其他地方叫getReader(),它与getInputStream()互斥。很难从这段代码中说出来,这个答案有点不太可能。

更有可能从servlet字段或某个公共变量中获取InputStream,并且有两个请求会读取。