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