Search
Ukázkový příklad pro práci s textovým souborem (nahrání a uložení dat):
celý projekt včetně vstupního souboru ke stažení: http://martin2.feld.cvut.cz/~pelikano/vyuka/PRI/Soubory.zip
package prace_text; import java.io.*; import java.util.*; public class Priklad { public static void main(String[] args) { try { //try - catch: ohlidani vyjimecnych stavu programu ArrayList seznam=new ArrayList(); //pro seznam pouzit ArrayList, lze event. i pole nacti("vstup.txt",seznam); //vstup.txt je jmeno souboru, lezi ve stejnem adresari jako cely projekt uloz("vystup.txt",seznam); //vystup.txt - soubor, kam se zapisuji udaje z pole (ArrayListu) } catch (IOException ex) { ex.printStackTrace(); //pri vyjimecne udalosti programu se vypise chyba } } //zapis obsahu pole (ArrayListu) do souboru public static void uloz(String soubor, ArrayList seznam) throws java.io.IOException { //vstupy: soubor a seznam File cil=new File(soubor); //File - "manazer" souboru if (cil.exists()) cil.createNewFile(); //kdyz soubor neexistuje, program ho vytvori FileWriter proud=new FileWriter(cil); //vytvoreni dat. proudu (z programu do souboru)- varianta 1 - premaze se stary obsah souboru //FileWriter proud=new FileWriter(cil,true); //vytvoreni dat. proudu - varianta 2 - necha puvodni obsah, nove pripoji na konec PrintWriter filtr=new PrintWriter(proud); //vytvoreni "filtru" dat for(int i=0;i<seznam.size();i++){ filtr.println(seznam.get(i)); //zapis polozky pole (ArrayListu) do souboru - kazda polozka na novem radku souboru //filtr.print(seznam.get(i)); //zapis polozky pole (ArrayListu) do souboru - polozky pole na jednom radku souboru //filtr.print(seznam.get(i)+" "); //zapis polozky pole (ArrayListu) do souboru - polozky pole na jednom radku souboru, oddeleny mezerou } filtr.close(); //datovy kanal se musi uzavrit! } // nacteni slov ze souboru do ArrayListu public static void nacti(String soubor,ArrayList seznam) throws java.io.IOException { //vstupy: soubor a seznam File zdroj=new File(soubor); //File - "manazer" souboru FileReader proud=new FileReader(zdroj); //vytvoreni dat. proudu (ze souboru do programu) BufferedReader x = new BufferedReader(proud); //vytvoreni "filtru" dat String radek; //promenna pro nacteni jednoho radku ze souboru while ((radek = x.readLine())!=null) { //cteni opakujeme, dokud nenarazime na prazdny radek StringTokenizer sl = new StringTokenizer(radek," "); //rozdeli retezec na jednotliva slova, oddelovacem slov je " "(mezera), lze nastavit jiny //StringTokenizer sl = new StringTokenizer(radek,"/"); // napr. zde je oddelovacem slov / while (sl.hasMoreTokens()) { //opakuje se, dokud jsou na radku jeste nejaka slova String slovo = sl.nextToken(); //do promenne slovo se ulozi slovo ze souboru seznam.add(slovo); //slovo se ulozi do pole (ArrayListu) } } x.close(); //datovy kanal se musi uzavrit! } }