попробуйте FileInputStream и FileOutputSteam, оба выбросить исключение - PullRequest
0 голосов
/ 22 мая 2011
try {
FileOutputStream out = new FileOutputStream("p1");
pictureTaken.compress(Bitmap.CompressFormat.PNG, 90, out);
out.close();
} catch (Exception e) {
e.printStackTrace();
}

и

        case R.id.open:
        ImageView im = (ImageView) findViewById(R.id.im);
        try {
            FileInputStream in = new FileInputStream("p1");
            BufferedInputStream buf = new BufferedInputStream(in);
            byte[] bitMapA= new byte[buf.available()];
            buf.read(bitMapA);
            Bitmap bM = BitmapFactory.decodeByteArray(bitMapA, 0, bitMapA.length);
            im.setImageBitmap(bM);
            if (in != null) {
            in.close();
            }
            if (buf != null) {
            buf.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        break;

Оба пытаются, но они не проходят отладку, они просто попали в ловушку ... Я получил большинство этих частей онлайн и изменил их домои потребности, но даже в этом случае все это имеет смысл и работает в моей голове.Просто не понимаю, почему это вызывает исключение.

1 Ответ

2 голосов
/ 22 мая 2011

Звучит как на Android, и из используемого вами пути (p1) вы просто пытаетесь сохранить файл в папке запущенного приложения. Вообще говоря, вы НЕ МОЖЕТЕ писать в какой бы то ни было каталог. Вы хотите сделать что-то вроде этого:

FileOutputStream out = openFileOutput ("p1", MODE_WORLD_WRITABLE);

в первом блоке кода, а затем:

FileInputStream in = openFileInput("p1");

во втором блоке кода.

...