2012-03-01 2 views
1

Попытка записать байт [] в файл, который я думаю, правильно ли работаетRead/Write Byte массив Android

String filename = "BF.dat"; 



    public void WriteByteToFile(byte[] mybytes, String filename){ 

    try { 

    FileOutputStream FOS = openFileOutput(filename, MODE_PRIVATE); 
    FOS.write(mybytes); 
    FOS.close(); 


    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

Тогда позже в приложении мне нужно прочитать байты обратно в байт []

 String filename = "BF.dat" 

    public byte[] ReadByteFromFile (String filename){ 

    byte[] mybytes = null; 

    try { 
     File file = new File(filename);  
     FileInputStream FIS = new FileInputStream(file); 

     mybytes = new byte[(int)file.length()]; 

      FIS.read(mybytes); 
      FIS.close(); 



    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    return mybytes; 
} 

байты не возвращаются из этого, (он работает в обычном Java - но не с Android APK) Я не уверен, что мне нужно, чтобы заставить его работать в андроиде. Есть много примеров написания байтов в файлах, но я не могу найти объяснений, как их вернуть.

Если что-то должно смутно прокомментировать, я объясню больше, если потребуется.

+0

Является ли 'filename' вы полностью переданным' ReadByteFromFile (...) '? – Squonk

+0

Полностью квалифицированный вы имеете в виду то же самое? String filename = "BF.dat"; Оба они одинаковы. (Я добавлю это на свой вопрос) –

+0

См. Ответ dbryson. Вам нужно использовать 'openFileInput' в вашем случае. То, что я подразумевал под полной квалификацией, было похоже на '/ data/data /.../.../ BF.dat'. Если вы проверите свой логарифм, вы, вероятно, получите «FileNotFoundException», зарегистрированный с вашим кодом выше. – Squonk

ответ

3

Возможно, вы пишете файл в частном хранилище контекста, но не читаете его обратно? Попробуйте прочитать файл с помощью openFileInput(filename)

+0

в порядке Я дам ему зайти, спасибо –