Я читаю и записываю имя пользователя и пароль на устройство Android с помощью приложения во внутреннюю память.Я успешно записываю на устройство, но при чтении получаю ошибку.При запуске приложения я читаю этот файл и получаю «Приложение (...) неожиданно остановилось. Пожалуйста, повторите попытку.» с кнопкой «Принудительно закрыть», и приложение закрывается.Я пробовал разные способы чтения, но все показали одинаковые результаты.Я записываю свои данные как имя пользователя + "\ n" + passwrd + "\ n".Это код для чтения данных:
private static String ReadFromFile(String fileName) {
String text = "";
FileInputStream fis = null;
byte[] fileData;
try {
StringBuffer sb = new StringBuffer();
int c = 0;
fis = AppContext.openFileInput(fileName);
if (fis.available() != 0) {
fileData = new byte[fis.available()];
c = fis.read(fileData);
Log.i(TAG, "Read Byes = " + c );
java.util.StringTokenizer stk = new java.util.StringTokenizer(new String(fileData), "\n");
text = stk.toString();
} else
throw new IOException("fis.available() <= 0"); /*
c = (char)fis.read();
while (c != -1){
if (c != -1)
sb.append(c);
c = (char)fis.read();
}
text = sb.toString();
*/
fis.close();
} catch (FileNotFoundException e) {
text = "null " + e.getMessage();
} catch (IOException e) {
text = "null " + e.getMessage();
} finally {
fis = null;
}
return text;
}
/*
try {
StringBuffer sb = new StringBuffer();
RandomAccessFile raf = new RandomAccessFile(ENC_LOGIN_FILE, "r");
while ((str1 = raf.readLine()) != null){
sb.append(str1);
}
str1 = sb.toString();
} catch (FileNotFoundException e) {
errorMessage = "File Not Found: " + e.getMessage();
//e.printStackTrace();
} catch (IOException ioe) {
errorMessage = "IOExcp: " + ioe.getMessage();
//e.printStackTrace();
}*/
Путь не используется и имя файла дается непосредственно для записи и чтения файла.Я проверил Проблема, возникающая при чтении файла из внутренней памяти Android , откуда я попробовал StringTokenizer.
Может кто-нибудь помочь мне узнать, где я иду не так.Установлено следующее разрешение:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.READ_SYNC_STATS"></uses-permission>
<uses-permission android:name="android.permission.READ_LOGS"></uses-permission>
Также, как мне отладить приложение.Как проверить данные, написанные в журнале.Если я использую SOP, где он отображается - он не отображается в окне консоли?Пожалуйста, помогите мне, я новичок в разработке Android.Еще одна вещь, которую необходимо уточнить: мой девиз - хранить имя пользователя и пароль таким образом, чтобы пользователь не мог прочитать их напрямую.Я уже использовал MODE_PRIMITIVE.Есть ли необходимость использовать JSONObject для сохранения этих данных.Я посмотрел на JSON на нескольких сайтах и API, но не мог понять, почему и где его следует использовать.Использование MODE_PRIMITIVE Я считаю, что даже пользователь не может прочитать файл.Только мое приложение может прочитать его.Тогда я не думаю, что я должен использовать JSON.Пожалуйста, поправьте меня, если я ошибаюсь.
Любая помощь высоко ценится.
Спасибо.