Java.io.FileNotFoundException: /file/path.jpg open failed: ENOENT (Нет такого файла или каталога)

Я пытаюсь сохранить изображение на parse.com . Мне нужно преобразовать его в массив байтов. То, как я решил попытаться сделать это, – использовать apache commons-io . Он работает неправильно. Это мой фрагмент кода;

private void saveImage() throws IOException { // TODO Auto-generated method stub InputStream header = new FileInputStream("/ClashMMA/res/drawable-hdpi/beatdown.jpg"); ParseFile file = new ParseFile(toByteArray(header)); try{ file.save(); } catch (ParseException e) { e.printStackTrace(); } ParseObject displayImage = new ParseObject("displayImage"); displayImage.put("header", file); try{ displayImage.save(); } catch (ParseException e1){ e1.printStackTrace(); } } private byte[] toByteArray(InputStream header) throws IOException { // TODO Auto-generated method stub ByteArrayOutputStream buffer = new ByteArrayOutputStream(); int l; byte[] data = new byte[1024]; while ((l = header.read(data, 0, data.length)) != -1) { buffer.write(data, 0, l); } buffer.flush(); return buffer.toByteArray(); } 

И моя ошибка такова;

java.io.FileNotFoundException: /ClashMMA/res/drawable-hdpi/beatdown.jpg: open failed: ENOENT (No such file or directory)

Но я уверен, что файл есть, потому что я пошел в свой каталог файлов (в eclipse), щелкнул правой кнопкой мыши и нажал на Copy Qualified Name . Который существенно копирует путь к файлу. Я пробовал несколько других путей, как сразу после моего компьютера, и в моей папке src . Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно? Почему он не будет читать файл, если на самом деле он есть? Подробные объяснения пожалуйста.

Файлы в ваших проектах Eclipse не находятся в (реальной или эмулируемой) файловой системе Android, и именно там ищет Android FileInputStream . (Не без оснований! Хост файловая система для Eclipse не будет на реальном Android-устройстве.)

У вас в основном есть два варианта:

  • getSystemResourceAsStream их в архив APK, чтобы вы могли загрузить их с помощью getSystemResourceAsStream : см. Как загрузить изображение для Android ImageView из classpath?

  • Скопируйте файлы в файловую систему Android, чтобы FileInputStream мог их найти.