Estou baixando arquivos da Internet e salvando os dados de streaming em um arquivo temporário no armazenamento interno do meu aplicativo fornecido por getFilesDir () .
Assim que o download for concluído, preciso mover o arquivo temporário para o meu diretório de download na memória externa (geralmente um cartão SD). Por alguma razão, porém, File.renameTo () não está funcionando para isso. Suponho que haja um problema porque são dois sistemas de arquivos separados, mas ainda posso baixar diretamente para o cartão SD e os URIs do arquivo estão corretos.
Existe outra maneira simples e rápida de transferir esse arquivo da memória interna para externa ou eu tenho que fazer uma cópia do fluxo de bytes e excluir o original?
Para copiar arquivos da memória interna para o cartão SD e vice-versa usando o seguinte código:
public static void copyFile(File src, File dst) throws IOException
{
FileChannel inChannel = new FileInputStream(src).getChannel();
FileChannel outChannel = new FileOutputStream(dst).getChannel();
try
{
inChannel.transferTo(0, inChannel.size(), outChannel);
}
finally
{
if (inChannel != null)
inChannel.close();
if (outChannel != null)
outChannel.close();
}
}
E - funciona ...
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras