3. Súbory
Plan na cvicenie
Práca so súborom
Konkretne :- vytvoriť projekt z existujúcich súborov,
- odskúšať si načítanie a zapisovanie do súbora,
- pridať funkcionalitu do telefonného zoznamu
Uloha 1
Vytvorte si projekt vo vývojovom prostredí NetBeans z existujúcich súborov.
Stiahnite si súbory .zip .
Uloha 2
Otvorte si súbor Hlavna.java a odskúšajte si ukážku načítania zo súboru do retazca.
Hlavna.java
public class Hlavna { public static void main(String[] args) { ... //Uloha 2 - odskusat si nacitanie zo subora //String s = ZoSuboru.readObsahZoSuboraString("subor.txt"); //System.out.println(s); ... } }
Uloha 3
Otvorte si súbor Hlavna.java a naimplementujte telo metódy ZoSuboru.readObsahZoSuboraZoznam() .
Formát súboru si môžete pozrieť v subore subor.txt , kde prvý riadok určuje veľkost zoznamu a na každom daľšom riadku sú jednotlivé prvky zoznamu.
Hlavna.java
public class Hlavna { public static void main(String[] args) { ... //Uloha 3 - naimplementovat nacitanie suboru do LinkedListu //LinkedList<String> list = ZoSuboru.readObsahZoSuboraZoznam("subor.txt"); //System.out.println(list); ... } }
ZoSuboru.java
public class ZoSuboru { public static LinkedList<String> readObsahZoSuboraZoznam(String menoSuboru) { LinkedList<String> vystup = new LinkedList<>(); //todo nacitat obsah suboru do LinkedList return vystup; } }
Uloha 4
Otvorte si súbor Hlavna.java a odskúšajte si ukážku zápisu retazca do súboru.
Hlavna.java
public class Hlavna { public static void main(String[] args) { ... //Uloha 4 - odskusat si zapis do subora //ZoSuboru.saveObsahDoSuboraString("zapis.txt"); ... } }
Uloha 5
Doimplementujte chýbajúce časti kódu pre v projekte pre vlastnú implementáciu zretazeného zoznamu na vymazanie všetkých kontaktov, načítanie tel. zoznamu zo súboru, uloženie tel. zoznamu do súboru.
Ukážkový formát súboru si môžete pozrieť v telzoz.txt . Prvý riadok určuje počet kontaktov a na každom nasledujúcom riadku sú bodkočiarkou oddelené jednotlivé atribúty triedy.
Hlavna.java
public class Hlavna { public static void main(String[] args) { ... //Uloha 5 - doplnit funkcionalitu vymazania vsekych udajov, nacitanie zo suboru, ulozenie do suboru //Cviko2.vlastnaImplementacia(); ... } }
Obsah.java
public class Obsah { public String getRow() { //todo return "Tu vratim String kde za kazdym atributom bude nasledovat bodkociarka"; } }
ZoSuboru.java
public class ZoSuboru { public static Prvok_zoznamu readObsahZoSuboraVlastnaImpl(String menoSuboru) { Prvok_zoznamu vystup = null; //todo nacitat telefonny zoznam zo suboru do zretazeneho zoznamu return vystup; } public static void saveObsahDoSuboraVlastnaImpl(Prvok_zoznamu prvy, String menoSuboru) { //todo zapisat telefonny zoznam zo zretazeneho zoznamu do suboru } }
Cviko2.java
public class Cviko2 { public static void vlastnaImplementacia(){ ... do { ... switch (c) { ... case '5': //todo vymazanie celeho zoznamu break; ... } } } }
Uloha 6
Doimplementujte chýbajúce časti kódu pre v projekte pre vstavanú implementáciu LinkedListu na vymazanie všetkých kontaktov, načítanie tel. zoznamu zo súboru, uloženie tel. zoznamu do súboru.
Ukážkový formát súboru si môžete pozrieť v telzoz.txt . Prvý riadok určuje počet kontaktov a na každom nasledujúcom riadku sú bodkočiarkou oddelené jednotlivé atribúty triedy.
Hlavna.java
public class Hlavna { public static void main(String[] args) { ... //Uloha 6 - doplnit funkcionalitu vymazania vsekych udajov, nacitanie zo suboru, ulozenie do suboru //Cviko2.vstavanaImplementacia(); ... } }
Obsah.java
public class Obsah { public String getRow() { //todo return "Tu vratim String kde za kazdym atributom bude nasledovat bodkociarka"; } }
ZoSuboru.java
public class ZoSuboru { public static Prvok_zoznamu readObsahZoSuboraVlastnaImpl(String menoSuboru) { Prvok_zoznamu vystup = null; //todo nacitat telefonny zoznam zo suboru do zretazeneho zoznamu return vystup; } public static void saveObsahDoSuboraVstavanaImpl(LinkedList<Obsah> zoznam, String menoSuboru) { //todo zapisat telefonny zoznam zo LinkedListu do suboru } }
Cviko2.java
public class Cviko2 { public static void vstavanaImplementacia(){ ... do { ... switch (c) { ... case '5': //todo vymazanie celeho zoznamu break; ... } } } }