2013-12-17 85 views
3

我試着寫InputStream的圖像的OutputStream在這個瀏覽器中顯示的圖像是代碼:Java的輸出圖像質量不好的瀏覽器

try 
{ 
    InputStream input = Filer.readImage("images/test.jpg"); 
    byte[] buffer = new byte[1024]; 
    int bytesRead; 
    while ((bytesRead = input.read(buffer)) != -1) 
    { 
     responseBody.write(buffer, 0, bytesRead); 
    } 
} 
catch(IOException e) 
{ 
    System.out.println(e); 
} 

的readImage:

public static InputStream readImage(String file) throws IOException { 
    InputStream input = new FileInputStream(file); 

    return input; 

} 

這是原始圖像:

http://i.stack.imgur.com/zQzVG.jpg

這是上述程序後的輸出:

http://i.stack.imgur.com/WgaKF.jpg

什麼是錯我的代碼?

回答

4

您需要關閉輸出流:

InputStream input = Filer.readImage("images/test.jpg"); 
byte[] buffer = new byte[1024]; 
int bytesRead; 
while ((bytesRead = input.read(buffer)) != -1) { 
    responseBody.write(buffer, 0, bytesRead); 
} 
responseBody.close(); // <----------- 
+0

啊,不知道,非常感謝你,接受在7分鐘內 – user3112115

+0

答案,如果你在'finally'塊關閉'responseBody'即使在出現錯誤的情況下也會關閉 – Simiil