Організація роботи з файлами даних та зовнішньою пам’яттю в ОС Android

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2015
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Мережеві операційні системи

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра ЕОМ ЗВІТ ДО ЛАБОРАТОРНОЇ РОБОТИ №4 з дисципліни: «Мережні операційні системи» на тему: «Організація роботи з файлами даних та зовнішньою пам’яттю в ОС Android» МЕТА: Оволодіти навичками програмування доступу та управління файлами даних в ОС Android. Теоретичні відомості: Робота з файлами даних Android Файли можна зберігати всередині APK додатки або як ресурси або asset. Ці файли доступні лише для читання. Libgdx використовує тільки asset механізм, так як він надає прямий доступ до байтовим потокам і більше нагадує традиційну файлову систему. Ресурси відмінно надаються для звичайних Android додатків, але викликають проблеми при використанні в іграх. Android здійснює маніпуляції під час їх завантаження, наприклад він автоматично змінює розмір. Asset зберігаються в assets директорії Android проекту і потім автоматично упаковуються в ваш APK при розгортанні програми. Жодне інше додаток не може отримати доступ до цих файлів. Файли також можуть зберігатися у внутрішній пам'яті, де вони доступні для читання і запису. Кожне встановлене додаток має спеціальну виділену внутрішню директорію для зберігання. Ця директорії теж доступна тільки для цього додатка. Ви можете думати про таке сховище як про приватний робочому просторі програми. Нарешті, файли можна зберігати на зовнішньому накопичувачі даних, такому як SD карта. Зовнішні накопичувачі не завжди можуть бути доступні, наприклад користувач може витягнути SD карту. Файли в цьому місці зберігання слід вважати не завжди доступними. Щоб мати можливість запису на зовнішні накопичувачі, вам потрібно буде додати дозволу в AndroidManifest.xml файл, дивіться дозволу нижче. Лістинг тестової програми MainActivity.java public class MainActivity extends AppCompatActivity implements View.OnClickListener{ protected static final String LOG_TAG = "myLogs"; protected static final String FILENAME_SD = "file.txt"; protected static final String DIR_SD = "myFile"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.btn_write: startActivity(new Intent(this, WriteActivity.class)); break; case R.id.btn_read: startActivity(new Intent(this, ReadActivity.class)); break; case R.id.btn_delete: File file = getFile(FILENAME_SD); file.delete(); Toast.makeText(MainActivity.this, "File: " + FILENAME_SD + " deleted", Toast.LENGTH_SHORT).show(); break; } } protected static File getFile(String fileName){ sdPath = new File(sdPath.getAbsolutePath() + "/" + MainActivity.DIR_SD); // add catalog Log.d(MainActivity.LOG_TAG, "Шлях до файлу " + sdPath.getAbsolutePath()); sdPath.mkdirs(); // create catalog File sdFile = new File(sdPath, fileName); return sdFile; } protected static Boolean checkSDCard(){ if (!Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { Log.d(MainActivity.LOG_TAG, "SD-карта не доступна: " + Environment.getExternalStorageState()); return false; } else { Log.d(MainActivity.LOG_TAG, "SD-карта доступна: " + Environment.getExternalStorageState()); return true; } } } WriteActivity.java public class WriteActivity extends AppCompatActivity { EditText editText; Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_write); editText = (EditText) findViewById(R.id.editText); btn = (Button) findViewById(R.id.write); View.OnClickListener onClickListener = new View.OnClickListener() { @Override public void onClick(View view) { if (MainActivity.checkSDCard()){ File sdFile = MainActivity.getFile(MainActivity.FILENAME_SD); try (BufferedWriter bw = new BufferedWriter(new FileWriter(sdFile))) { bw.write(editText.getText().toString());; Log.d(MainActivity.LOG_TAG, "Файл записан на SD: " + sdFile.getAbsolutePath()); } catch (IOException e) { e.printStackTrace(); } } } }; btn.setOnClickListener(onClickListener); } } ReadActivity.java public class ReadActivity extends AppCompatActivity { TextView text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_read); text = (TextView) findViewById(R.id.fileContent); if (MainActivity.checkSDCard()){ File sdFile = MainActivity.getFile(MainActivity.FILENAME_SD); try (BufferedReader br = new BufferedReader(new FileReader(sdFile))){ String str = ""; while ((str = br.readLine()) != null) { text.append(str); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } } Результати виконання тестової програми Рис. 1. Головне вікно програми. Рис. 2. Запис у файл. Рис. 3. Читання з файлу Рис. 4. Видалення файлу ВИСНОВОК В даній лабораторній роботі я оволодів навичками програмування і роботою з файлами даних та зовнішньою пам’яттю в ОС Android.
Антиботан аватар за замовчуванням

13.12.2016 13:12-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!