Skip to content

Latest commit

 

History

History

5.2.1

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Задача 1. Сохранение/восстановление текста во внутренний файл

Описание

Контроль доступа к приложению - важная задача, которая стоит в каждом втором проекте. Разумеется, некоторая информация должна храниться только во внутреннем хранилище приложения (например, платежные данные банковской карты).

Задание

Создайте экран Логина - Пароля для своего приложения со следующими элементами:

  • Edittext для логина.
  • Edittext для пароля.
  • Кнопка "ОК", по клику на которую приложение проверяет правильность логина - пароля.

Логин и пароль храним во внутреннем файле приложения.

Реализация

  1. Создадим экран с компонентами Edittext для логина и пароля. Добавим кнопку OK, которая будет проверять подлинность введенных данных. Так же понадобится кнопка регистрации, при помощи которой сохраним логин и пароль во внутреннем файле.

И так экран примет следующий вид:

  1. Нужно осуществить инициализацию компонентов экрана. Например:
         EditText mLoginEdTxt = findViewById(R.id.edit_login);
  1. Написать обработчик события нажатия кнопки "Регистрация".
  2. Осуществить проверку введенных данных в полях логина и пароля. Если пользователь не ввел никаких данных, выдать Toast с ошибкой.
  3. В обработчик события кнопки "Регистрация" добавить создание файлов во внутреннем хранилище. Для создания файла и записи данных используйте BufferedWriter, который в качестве входного значение принимает OutputStreamWriter, например:
// Создадим файл и откроем поток для записи данных
    FileOutputStream fileOutputStream = openFileOutput("file_name", MODE_PRIVATE);
// Обеспечим переход символьных потока данных к байтовым потокам.
    OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
// Запишем текст в поток вывода данных, буферизуя символы так, чтобы обеспечить эффективную запись отдельных символов.
    BufferedWriter bw = new BufferedWriter(outputStreamWriter);
// Осуществим запись данных 
    bw.write("Содержимое файла");
// закроем поток
    bw.close();
  1. Сохранить данные логина и пароля в отдельные файлы.
  2. Написать обработчик события для нажатия кнопки ОК.
  3. Осуществить чтение данных из файлов логина и пароля. Для чтения использовать InputStreamReader и BufferedReader.
// Получим входные байты из файла которых нужно прочесть.
     FileInputStream fileInputStream = openFileInput(filename);
// Декодируем байты в символы 
     InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
// Читаем данные из потока ввода, буферизуя символы так, чтобы обеспечить эффективную запись отдельных символов.
     BufferedReader reader = new BufferedReader(inputStreamReader);
     reader.readLine();
  1. Осуществить проверку введенных данных логина и пароля.
  2. Вывести сообщение на экран о совпадении логина и пароля с данными, которые сохранены во внутреннем файле.