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;
...
}
}
}
}