2012-01-13 4 views
0

Я использую приведенный ниже код для передачи изображения из одной папки во внешнюю память, в другую .., указанную пользователем. Проблема в том, что фото скопировано в папку назначения ... но я не могу открыть или просмотреть его. Я использую диспетчер файлов с именем Astro, чтобы убедиться, что он был успешно перемещен, и это ... но я не могу открыть его как в Astro, так и в приложении-резиденте Gallery. Я думаю, что что-то не так с моим кодом, и, возможно, мне нужно прочитать и/или декодировать фотографию, прежде чем я смогу переместить ее, из того, что я понимаю о классе File, это просто абстракция. Любые рекомендации по этому вопросу будут очень полезны, вот код, который я сейчас использую.Android, перемещающий фотографию из одной папки в другую

File img = new File(imgViewPath); 

    File output = new 
           File(Environment.getExternalStorageDirectory().toString() + "/MyAppPics/" + moved, 
         img.getName()); 


OutputStream out = null; 
try { 
    out = new BufferedOutputStream(new FileOutputStream(output)); 
     } 
finally { 
if (out != null) { 
     out.close(); 
} 
} 
}catch(Exception e){ 
            e.printStackTrace(); 
} 
+0

[Это поможет] (http://stackoverflow.com/questions/106770/standard-concise-way-to-copy-a-file-in-java) – st0le

ответ

1

Вы ничего не пишете в выходной поток. Прочитайте байты из входного потока и запишите его в выходной поток, только тогда файлы будут скопированы.

+0

Добавьте это ... in = new BufferedInputStream (новый FileInputStream (img)); \t \t в то время как ((с = in.read()) = - 1!) \t { \t \t out.write (с); \t} out.flush(); –

+0

Shasank благодарю вас за ваш ответ. Я думаю, что это то, чего мне не хватало, но не могли бы вы дать мне подробное объяснение, используя мой код выше? Было бы очень благодарно! –

+0

Ничего, я понял. Еще раз спасибо –

Смежные вопросы