Android - Использование Filechannel для копирования файлов на SD-карту невозможно? - PullRequest
0 голосов
/ 27 января 2019

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

  • Я проверил вывод с помощью file.canwrite (), и он вернул false .. Почему ??

    public void copyFile(String inputPath, String outputPath) {
    FileInputStream fis = null;
    FileOutputStream fos = null;
    FileChannel in = null;
    FileChannel out = null;
    try{
        fis = new FileInputStream(inputPath);
        fos = new FileOutputStream(outputPath);
        in = fis.getChannel();
        out = fos.getChannel();
        in.transferTo(0, in.size(), out);
    } catch(Exception e){
        e.printStackTrace();
    }
    finally {
        try{
            if(out != null) out.close();
            if(in != null) in.close();
            if(fis != null) fis.close();
            if(fos != null) fos.close();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
    

    }

1 Ответ

0 голосов
/ 27 января 2019

Попробуйте добавить fos.flush () после повторной строки "in.transferTo (0, in.size (), out);"

...