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

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

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

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

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Мережеві операційні системи

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

Міністерство освіти і науки України Національний університет «Львівська політехніка» Кафедра ЕОМ / Лабораторна робота №4 з предмету: «Мережні операційні системи» на тему: «Організація роботи з файлами даних та зовнішньою пам’яттю в ОС Android» Львів – 2017 Мета роботи: Оволодіти навичками програмування доступу та управління файлами даних в ОС Android. Завдання: завдань Програма доступу до текстового файлу даних , програма запису, зчитування та знищення текстового файлу даних з SD-картки. Перерахування основних ресурсів Android Тип ресурсу Розміщення опис  кольори res / values ​​/ имя_файла Ідентифікатор кольору, який вказує на колірний код. ID таких ресурсів виражаються в R.java якR.color. * . XML-вузол: / resources / color  рядки res / values ​​/ имя_файла Строкові ресурси. У їх число також входять рядки в форматі java і html. ID таких ресурсів виражаються в R.java як R.string. * . XML-вузол: resources / string. Можна використовувати додаткове форматування за допомогою стандартних html-тегів <b>, <i> і <u>. Методи, які будуть обробляти рядкові ресурси з HTML-форматуванням, повинні вміти обробляти ці теги.      Меню / Res / menu / имя_файла Меню в додатку можна задати як XML-ресурси.  параметри / Res / values ​​/ имя_файла Являє собою параметри або розміри різних елементів. Підтримує пікселі, дюйми, міліметри, які не залежать від щільності екрану пікселі (dip) і пікселі, які не залежать від масштабу. ID таких ресурсів виражаються в R.java як R.dimen. * . XML-вузол: resources / dimen  зображення / Res / drawable / ваші_файли Ресурси-зображення. Підтримує формати JPG, GIF, PNG (самий кращий) і ін. Кожне зображення є окремим файлом і отримує власний ідентифікатор, який формується на ім'я файлу без розширення.Такі ID ресурсів представлені в файлі R.java як R.drawable. *. Система також підтримує так звані розтягуються зображення (stretchable image), в яких можна змінювати масштаб окремих елементів, а інші елементи залишати без змін.  отрісовиваємих кольору / Res / values ​​/ ваш_файл або / res / drawable / ваші_файли Являє кольорові прямокутники, які використовуються в якості фону основних відмальовуємих об'єктів, наприклад точкових малюнків. Підтримка такої функції забезпечується тегом значення drawable, що знаходяться в підкаталозі значень. Такі id ресурсів виражаються в файлі R.java як R.drawable. *. ХМL-вузол для такого файлу: / resources / drawable. В Android за допомогою спеціальних ХМL-файлів, розташованих в / res / drawable, також підтримується округлені і градієнтні прямокутники. Кореневим ХМL-тегом для drawable є <shape>. Ідентифікатори таких ресурсів виражаються в файлі R.java як R.drawable. *. В такому випадку, кожне ім'я файлу перетвориться в унікальний id відмальовуємого об'єкта  анімація / Res / anim / ваш_файл Android може виконати просту анімацію на графіку або на серії графічних зображень. Анімація включає обертання, поступова зміна, переміщення і протяг.  Довільні XML-файли /res/xml/*.xml В Android в якості ресурсів можуть використовуватися довільні XML-файли. Вони компілюються в aapt.Ідентифікатори таких ресурсів також виражаються в файлі R.java як R.xml. *  Довільні необроблені ресурси /res/raw/*.* Будь-які нескомпільовані виконавчі або текстові файли, наприклад, відео. Кожен файл отримує унікальний id ресурсу. Ідентифікатори таких ресурсів виражаються в файлі R.java як R.raw. *  Довільні необроблені активи /assets/*.*/*.* Можна використовувати довільні файли в довільно названих каталогах, які знаходяться в підкаталозі / assets. Це не ресурси, а просто необроблені файли. У цьому каталозі, на відміну від / res, підкаталоги можуть розташовуватися на будь-якій глибині. Для таких файлів не створюються ідентифікатори ресурсів. При роботі з ними потрібно використовувати відносне ім'я шляху, починаючи з / assets, але не показуючи цього каталогу в імені шляху  Лістинг програми MainActivity.java package com.example.bogdan.mos_guk_ki44_lab4; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; public class MainActivity extends AppCompatActivity { public EditText editText; public TextView textView; public Button save, load; public String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/aaMosLab4"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.editText); textView = (TextView) findViewById(R.id.textView); save = (Button) findViewById(R.id.save); load = (Button) findViewById(R.id.load); File dir = new File(path); dir.mkdirs(); } public void buttonSave (View view) { File file = new File (path + "/savedFile.txt"); String [] saveText = String.valueOf(editText.getText()).split(System.getProperty("line.separator")); editText.setText(""); Toast.makeText(getApplicationContext(), "Saved", Toast.LENGTH_LONG).show(); Save (file, saveText); } public void buttonDelete (View view) { editText.setText(""); Toast.makeText(getApplicationContext(), "Deleted", Toast.LENGTH_LONG).show(); delete (path + "/savedFile.txt"); } public static void delete(String path) { File file = new File(path); if (file.exists()) { String deleteCmd = "rm -r " + path; Runtime runtime = Runtime.getRuntime(); try { runtime.exec(deleteCmd); } catch (IOException e) { } } } public void buttonLoad (View view) { File file = new File (path + "/savedFile.txt"); if (file.exists()) { String[] loadText = Load(file); String finalString = ""; for (int i = 0; i < loadText.length; i++) { finalString += loadText[i] + System.getProperty("line.separator"); } textView.setText(finalString); }else Toast.makeText(getApplicationContext(), "File not found", Toast.LENGTH_LONG).show(); } public static String[] Load(File file) { FileInputStream fis = null; try { fis = new FileInputStream(file); } catch (FileNotFoundException e) {e.printStackTrace();} InputStreamReader isr = new InputStreamReader(fis); BufferedReader br = new BufferedReader(isr); String test; int anzahl=0; try { while ((test=br.readLine()) != null) { anzahl++; } } catch (IOException e) {e.printStackTrace();} try { fis.getChannel().position(0); } catch (IOException e) {e.printStackTrace();} String[] array = new String[anzahl]; String line; int i = 0; try { while((line=br.readLine())!=null) { array[i] = line; i++; } } catch (IOException e) {e.printStackTrace();} return array; } public static void Save(File file, String[] data) { FileOutputStream fos = null; try { fos = new FileOutputStream(file); } catch (FileNotFoundException e) {e.printStackTrace();} try { try { for (int i = 0; i<data.length; i++) { fos.write(data[i].getBytes()); if (i < data.length-1) { fos.write("\n".getBytes()); } } } catch (IOException e) {e.printStackTrace();} } finally { try { fos.close(); } catch (IOException e) {e.printStackTrace();} } } } activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.bogdan.mos_guk_ki44_lab4.MainActivity"> <Button android:text="Прочитати" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:id="@+id/load" android:onClick="buttonLoad" /> <Button android:text="Видалити" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/delete" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:onClick="buttonDelete" /> <Button android:text="Записати" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/save" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:onClick="buttonSave" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="textPersonName" android:ems="10" android:layout_below="@+id/load" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="24dp" android:id="@+id/editText" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/editText" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="16dp" android:id="@+id/textView" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> </RelativeLayout> AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.bogdan.mos_guk_ki44_lab4"> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> Результати роботи програми:  Рис.1  Рис.2 Висновок: На цій лабораторні роботі я отримав навички програмування доступу та управління файлами даних в ОС Android.
Антиботан аватар за замовчуванням

20.12.2017 21:12-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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