Попытка записать байт [] в файл, который я думаю, правильно ли работает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) Я не уверен, что мне нужно, чтобы заставить его работать в андроиде. Есть много примеров написания байтов в файлах, но я не могу найти объяснений, как их вернуть.
Если что-то должно смутно прокомментировать, я объясню больше, если потребуется.
Является ли 'filename' вы полностью переданным' ReadByteFromFile (...) '? – Squonk
Полностью квалифицированный вы имеете в виду то же самое? String filename = "BF.dat"; Оба они одинаковы. (Я добавлю это на свой вопрос) –
См. Ответ dbryson. Вам нужно использовать 'openFileInput' в вашем случае. То, что я подразумевал под полной квалификацией, было похоже на '/ data/data /.../.../ BF.dat'. Если вы проверите свой логарифм, вы, вероятно, получите «FileNotFoundException», зарегистрированный с вашим кодом выше. – Squonk