Nide Tekstifaili kopeerimine import java io Failide nimede

  • Slides: 7
Download presentation
Näide. Tekstifaili kopeerimine import java. io. *; Failide nimede määramine konstantidena: 1) absoluutne tee

Näide. Tekstifaili kopeerimine import java. io. *; Failide nimede määramine konstantidena: 1) absoluutne tee + faili nimi (täisnimena) String sf. Nimi = "C: \ATIkasutaja\Kiho\OOP 2009\Praktikum\praktikum 7\a. txt"; // väljundfaili nimi String vf. Nimi = "C: \ATIkasutaja\Kiho\OOP 2009\Praktikum\praktikum 7\b. txt"; // sisendfaili nimi või 2) suhteline tee + faili nimi String sf. Nimi = ". \praktikum 7\a. txt"; // alguspunktile vastab tee System. get. Property("user. dir") String vf. Nimi = ". \praktikum 7\b. txt"; // alguspunktile vastab tee System. get. Property("user. dir") Kopeerida read failist sf. Nimi faili vf. Nimi: try { Buffered. Reader sfail = new Buffered. Reader(new File. Reader(sf. Nimi )); // avada sisestamiseks Buffered. Writer vfail = new Buffered. Writer(new File. Writer(vf. Nimi )); // avada väljastamiseks String r = ""; // loetava rea (ilma realõpu sümboli(te)ta) koht while((r = sfail. read. Line()) != null){ // r : = jrk rida sisendfailist, ja kui see ei ole null, siis vfail. write(r); // kirjutada r väljundfaili vfail. new. Line(); // lisada veel realõpu sümbol(id) } sfail. close(); vfail. close(); sfail. read. Line() } tagastab järjekordse sisestatud rea catch (IOException e){ või tühiviida null, kui rohkem ridu enam ei ole System. err. println(e); 1 }

Näide. Faili nime määramine brauseri abil import javax. swing. *; // JFile. Chooser. .

Näide. Faili nime määramine brauseri abil import javax. swing. *; // JFile. Chooser. . . public static String valida. Fail(String viip){ JFile. Chooser fc = new JFile. Chooser(System. get. Property("user. dir") + "\praktikum 7"); fc. show. Dialog(null, viip); return fc. get. Selected. File(). get. Absolute. Path(); // valitud faili nimi või Null. Pointer. Exception } Selgitusi: JFile. Chooser fc = new JFile. Chooser(Kaust); fc. show. Dialog(null, viip); Üldisem: int tulem = fc. show. Dialog(null, viip); if(tulem == JFile. Chooser. APPROVE_OPTION) … Kaust -- millest alustada. Võib puududa, siis alguskausta määrab süsteem, nt. . . My Documents vmt. Brauseri (kaustade sirvija) aken ekraanile. Esimene argument – ülemus-aken (kui on, muidu null). Teine argument – “jah”-vastuse nupu tekst, vt jrgm slaid. Kui kasutaja vastas, siis tagastatakse int-arv (siin seda arvu ei kasutata). Ja suletakse aken. Klassi java. lang. File isend (kasutaja poolt valitud fail). See on null, kui faili ei valitud (vajutati Cancel või suleti dialoogiaken). Viimasel juhul seega tekib erind Null. Pointer. Exception, kui isendist soovitakse saada valitud faili nime: 2 fc. get. Selected. File(). get. Absolute. Path() fc. get. Selected. File()

fc. show. Dialog(null, “Sisendfail”); 3

fc. show. Dialog(null, “Sisendfail”); 3

Faili ümberkirjutamise tarkvarakomponent public class Failist. Faili{ Liides Reameister public static boolean ülekanne(Reameister rm)

Faili ümberkirjutamise tarkvarakomponent public class Failist. Faili{ Liides Reameister public static boolean ülekanne(Reameister rm) avada sisendfail avada väljundfail sisendfaili iga rea r korral leida vastavate uute ridade järjend leitud uued read kirjutada väljundfaili igasuguse tõrke korral tagastatakse false, muidu true public interface Reameister public String sisendfaili. Nimi(); public String väljundfaili. Nimi(); public String[ ] teisendus(String rida); Selle tarkvarakomponendi rakenduskokkulepe: 1. Kirjutada klass (nt klass Reameister. X), mis realiseerib (implements) liidese Reameister; st klassis Reameister. X peavad leiduma liideses loetletud kolm meetodit (failinimede hankimiseks ja järjekordse sisendrea teisendamiseks 0 või enamaks väljundreaks). 2. Faili ümberkirjutamiseks rakendada klassi Failist. Faili meetodit ülekanne andes argumendiks 4 klassi Reameister. X isendi, nt Failist. Faili. ülekanne(new Reameister. X());

Reameistrite näiteid Kopeerimine Tühjade ridadeta, lisatakse reanumbrid package praktikum 7; public class Reameister_Kopeerija public

Reameistrite näiteid Kopeerimine Tühjade ridadeta, lisatakse reanumbrid package praktikum 7; public class Reameister_Kopeerija public class Reameister_Koond_Numbrid implements Reameister{ private int i = 0; private String sf. Nimi; private String vf. Nimi; public Reameister_Kopeerija(){ public Reameister_Koond_Numbrid(){ sf. Nimi = Praktikum 7. valida. Fail("Sisendfail"); vf. Nimi = Praktikum 7. valida. Fail("Väljundfail"); } } public String[] teisendus(String r){ // lihtsalt kopeerida (tagastada sama r), 1 elem // kui pole tühi, siis tagastada number. +r (1 elem) return new String[]{r}; if(r. trim(). length() > 0) } return new String[]{(++i) +". " + r}; else public String sisendfaili. Nimi(){ return new String[0]; // 0 elementi return sf. Nimi; } } public String sisendfaili. Nimi(){ return sf. Nimi; public String väljundfaili. Nimi(){ } return vf. Nimi; 5 } } }

package praktikum 7; import java. io. *; public class Failist. Faili{ Klassi nimi, mille

package praktikum 7; import java. io. *; public class Failist. Faili{ Klassi nimi, mille isendiks rm on public static boolean ülekanne(Reameister rm){ try{ System. out. println("Failist. Faili(" + rm. get. Class(). get. Name() + "): "); String sf. Nimi = rm. sisendfaili. Nimi(); String vf. Nimi = rm. väljundfaili. Nimi(); System. out. println(" " + sf. Nimi + " ==>n==> " + vf. Nimi); if(sf. Nimi. equals(vf. Nimi)){ System. out. println("Sisend- ja valjundfail peavad olema erinevad!"); return false; } //(vt ka slaid 1 -- Tekstifaili kopeerimine) //failide avamine, // rea sisestamine sisendfailist, // uute ridade loomine (rm. teisendus abil) // ja nende kirjutamine väljundfaili, //failide sulgemine return true; } catch (IOException e { System. err. println(e. get. Message()); return false; } catch (Null. Pointer. Exception e) { // <-- faili nimi jäi valimata System. err. println("Faili nimi valimata!"); return false; } } } Klassi Failist. Faili. java näidisskeem 6

Peaklassi Praktikum 7. java näidisskeem package praktikum 7; import javax. swing. *; // JFile.

Peaklassi Praktikum 7. java näidisskeem package praktikum 7; import javax. swing. *; // JFile. Chooser public class Praktikum 7 { public static void main(String[ ] args){ boolean tehtud = Failist. Faili. ülekanne(new Reameister. X()); System. out. println(tehtud ? "Tehtud. " : "Tegemata!"); } public static String valida. Fail(String viip){ // Vt slaid 2 } } 7