在Android應用程序中,我發送了一張來自Camera Intent
的圖片,因此我需要將Bitmap
轉換爲一個字節數組。要做到這一點我使用ByteArrayOutputStream
如下:在Android應用程序中關閉ByteArrayOutputStream
private byte[] getRawImageData(Bitmap source) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] rawImageData = null;
try {
source.compress(CompressFormat.JPEG, DEFAULT_COMRESSION, baos);
rawImageData = baos.toByteArray();
} finally {
try {
baos.close();
} catch (IOException e) {
// handle exception here
}
}
return rawImageData;
}
一切正常,所有,真正的問題是的Javadoc和於Android的文檔之間ByteArrayOutputStream
文檔中的差異。
的Javadoc讀取
關閉一個ByteArrayOutputStream沒有效果。
的Android doc寫着:
關閉此流。這釋放用於此流的系統資源。
我正在關閉流無論如何,但我想知道哪些文檔是正確的,爲什麼他們不同。
第一個和第二個都是正確的,取決於outputstrem的實現,關閉一個baos,什麼都不做。但是總是關閉流是一個很好的習慣,不管他們來自哪裏 – epoch 2013-03-13 09:58:52
你是否擔心在調用close函數時,字節數組之間會發生什麼? – Perception 2013-03-13 10:02:33
@epoch,但問題是:**爲什麼當它什麼都不做時需要關閉這個流?** – waqaslam 2013-03-13 10:05:49