W ostatniej części naszego cyklu poznaliśmy jak zbudować podstawowy panel ustawień, który będzie przechowywał w łatwy sposób informacje. Dziś poznamy jak zapisać informacje na karcie pamięci. W odróżnieniu od SharedPreferences informacje te mogą być dowolnego typu i mogą to być nawet pliki binarne. Pokażę dziś jak napisać prostą aplikację, która będzie zapisywała i odczytywała plik tekstowy.
1. Nasza aplikacja będzie wyglądać następująco:
2. Na początek napiszemy metodę zapisu do pliku. Potrzebujemy standardowo wyciągnąć stringi z dwóch pól tekstowych. Do zapisu użyjemy klasy FileInputStream. Kod ten nie jest trudny, a jego wytłumaczenie zawarte będzie w komentarzach.
3. Teraz kilka uwag:
- Pamiętajcie, że należy jeszcze dodać parametr onClick we właściwościach buttona
- Aby aplikacja działała należy utworzyć dla emulatora kartę SD. W przeciwnym wypadku wyświetli się komunikat pamięć niezapisywalna zgodnie z kodem programu
- Należy dodać jeszcze dwa uprawnienia: android.permission.WRITE_EXTERNAL_STORAGE i android.permission.READ_EXTERNAL_STORAGE
5. Teraz wykonamy odczyt z pamięci zewnętrznej. Do tego użyjemy metody klasy FileInputStream. Do tego zrobimy odpowiednie separatory, aby tekst nie był w jednej linii.
6. Na koniec możecie dodać w onCreate aby metoda czytaj była wywoływana przy starcie programu. W tym przypadku parametr view może być nawet null.
7. Standardowo kompilujemy aplikację, uruchamiamy kilkakrotnie i sprawdzamy czy zapisywanie i odczytywanie działa.
W dzisiejszej części było więcej kodu niż logiki, ponieważ do odczytywania plików nie ma jednej dobrej metody tak jak przy ustawieniach. Na koniec dorzucam standardowo plik z projektem aplikacji: PamiecZewnetrzna