Rodolfo Faquin
Rodolfo Faquin

Reputation: 830

read failed: EBADF (Bad file number)

When I try do a copy one file of the external storage for into folder database, this error happens:

java.io.IOException: read failed: EBADF (Bad file number)

This error happens on the line of while of this method

private void copiarBaseDados(InputStream input) throws IOException{
  OutputStream output = new FileOutputStream(ConfiguracoesBaseDados.BANCO_PATH + ConfiguracoesBaseDados.BANCO_NOME);
  int tamanho;
  byte[] buffer = new byte[1024];
  while ((tamanho = input.read(buffer)) > 0) 
       output.write(buffer, 0, tamanho);
  output.flush();
  output.close();
  input.close();
}

Any idea what could be the problem? Thanks

Upvotes: 12

Views: 46909

Answers (1)

Govil
Govil

Reputation: 2054

Check whether your input(stream) exists before reading.

Also see if you have these permissons:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

Upvotes: 15

Related Questions