1
我對android很新穎。我想將圖像保存到內部存儲器,稍後從內部存儲器中檢索圖像並將其加載到圖像視圖。我已經使用以下代碼成功地將圖像存儲在內部存儲器中:從內部存儲器讀取圖像android給出空指針異常
void saveImage() {
String fileName="image.jpg";
//File file=new File(fileName);
try
{
FileOutputStream fOut=openFileOutput(fileName, MODE_PRIVATE);
bmImg.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
}
catch (Exception e)
{
e.printStackTrace();
}
}
使用此代碼圖像保存。但是,當我嘗試檢索圖像,它給了我錯誤。用於檢索圖像的代碼是:
FileInputStream fin = null;
ImageView img=new ImageView(this);
try {
fin = openFileInput("image.jpg");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] bytes = null;
try {
fin.read(bytes);
} catch (Exception e) {
e.printStackTrace();
}
Bitmap bmp=BitmapFactory.decodeByteArray(bytes,0,bytes.length);
img.setImageBitmap(bmp);
但是,我得到一個空指針異常。
我檢查的文件是存在的內部存儲器中的路徑:
/data/data/com.test/files/image.jpg
我在做什麼錯了,請幫我出這一點。我經歷了很多堆棧問題。
['available()'](http://docs.oracle.com/javase/6/docs/api/java/io/FileInputStream.html#available%28%29)方法是估計值。您可以使用['File.length()'](http://developer.android.com/reference/java/io/File.html#length%28%29)找到更可靠的字節數。 –
哇!這正是問題所在。謝了哥們!!你讓我今天一整天都感覺很好!我需要刷新核心的Java概念!再次感謝!! –
@ user1566160耶歡迎:)請記住傑森提到的,我即將告訴你可用不給出確切的大小,它只是一個估計值,或者可以是小文件大小的臨時解決方案。 – AAnkit