Java: delo z datotekami - pisanje, branje, brisanje

Java ima veliko orodij za obdelavo datotek, saj v mnogih aplikacijah služijo kot podatkovno skladišče. Pogosto je potreben dostop do datotek v Java Androidu. Vsi razredi za delo z datotekami se nahajajo v paketu java.io, ki hrani tudi razrede za delo z vhodnimi in izhodnimi tokovi. Strogo gledano, v Java delo z datotekami je predvsem zaradi bajtov in znakov vhodno /izhodne tokove. Izjema je razred File. Začnimo s tem.

Razred Java Java - delo z datotekami

Razredna datoteka neposredno vpliva na datoteke in datoteke. Primer tega razreda se primarno uporablja za dostop do lastnosti datoteke in premikanje po hierarhijah podimenikov. Ne definira načinov za ekstrahiranje in shranjevanje podatkov v datoteko, vendar lahko s tem razredom dobite veliko informacij o datoteki, datumu, času, dovoljenjih in poti do imenika. Dejstvo je, da je razred File specifična interpretacija datoteke ali imenika v Javi.


Za izdelavo primerka razreda File uporabite enega od njegovih konstruktorjev: File (String path do mape, String filename). Razmislite o osnovnih metodah tega razreda, ki vam omogoča, da dobite informacije o datoteki ali imeniku:
  • getName () - vrne ime datoteke;
  • obstaja () - vrne logično vrednost true, če datoteka obstaja, ali je drugače false;
  • isFile () - definira, podaja objekt v datoteko, vrne ustrezno logično vrednost;
  • isDirectory () - vrne true, če je mapa;
  • canWrite () - vrne true, če je datoteka na voljo za pisanje;
  • canRead ()- vrne true, če je datoteka berljiva;
  • setReadOnly () - omogoča dostop do datoteke samo za branje;
  • length () - vrne velikost datoteke v bajtih;
  • preimenovanje (novo ime datoteke) - preimenuje datoteko v skladu z opravljenim argumentom. Vrne true, če je operacija uspešna;
  • delete () - izbriše datoteko ali mapo (če je prazna), ki jo označuje kličoči objekt;
  • list () - izdela seznam imen objektov, shranjenih v tem imeniku, kot niz nizov (velja samo za imenike).
  • Tako uporaba razreda File omogoča delo Java z datotekami in mapami.


    Delo z datotekami z uporabo razredov FileInputStream in FileOutputStream

    V Javi smo omenili, da se delo z datotekami večinoma izvaja z V /I tokovi. Tokovi bajtov za delo z datotekami so predstavljeni v razredih FileInputStream in FileOutputStream. Ti razredi so dediči osnovnih abstraktnih razredov InputStream in OutputStream, tako da so metode teh razredov na voljo za delo z datotekami. Najprej preglejte datoteko FileInputStream. Oblikovalci tega razreda so predstavljeni na spodnji sliki:
    Prvi konstruktor vzame kot argument pot do želene datoteke v obliki niza, drugi pa v obliki predstavitve objekta. Čeprav se prvi konstruktor uporablja pogosteje, je v drugem primeru mogoče pregledati lastnosti datoteke, ki je na voljo v metodah razreda File. Ko ustvarjate primerek razreda FileInputStream, odpre vhodni tok za branje datoteke.
    Konstruktorji razreda FileOutputStream so prikazani spodaj:
    Stanjepodobno kot FileInputStream, vendar lahko sprejme tudi logično vrednost "append", ki pravzaprav navaja, da bodo podatki, ki so bili zabeleženi v končni datoteki, dodani obstoječim, in pri false - popolna prepisovanje datoteke, tj. stari podatki ne bodo shranjeni. . Poglejmo primer z uporabo teh razredov:
    Vhodni tok FileInputStream bere podatke iz bajta datoteke file1.txt z metodo read (). Vsak bajt brane se shrani v celo število. V telesu cikla se ta spremenljivka posreduje kot argument metodi pisanja primerka FileOutputStream, ki prejme prejeti bajt v datoteko file2.txt. Ob koncu obeh niti se obvezna zapora zapre z metodo zapiranja.

    Razredi FileReader in FileWriter

    Če veste, da boste pri delu z datotekami obravnavali besedilo, namesto bajtnih tokov je smiselno uporabiti znak. Te niti so predstavljene v razredih FileReader in FileWriter v Javi. Delo z datotekami s temi razredi je približno enako kot v prejšnjem primeru. So potomci razredov Reader in Writer, ki določata osnovne metode za vhodne in izhodne podatke. Na spodnji sliki so predstavljeni oblikovalci razredov FileReader in FileWriter:
    Strinjam se, da v semantiki praktično ni razlik v primerjavi z bajtnimi tokovi. Najpomembnejše je, da so ti razredi posebej zasnovani za delo z znaki v Unicode, ki jih ni mogoče opraviti z bajtnimi tokovi. Tako so organizirane datoteke Java. Primer uporabe teh razredov je podan spodaj:
    Kot lahko vidite,ni opaziti razlik. Treba je omeniti, da čeprav so tokovi simbolični, se metoda read ponovi in ​​metoda write ima vrednost celo število. Čeprav podpis načina pisanja vključuje sprejemanje argumentov tipa int, je v tok zapisano samo 16 bitov, saj so znaki v Javi predstavljeni le s tem številom bitov.

    Zaključek

    Torej smo razstavili osnovne razrede za delo z datotekami v Javi. Treba je omeniti, da če boste razvili Java iz Androida, lahko varno uporabljate ta komplet orodij.

    Sorodne publikacije