Java: pracovať so súbormi - písať, čítať, mazať

Java má veľa nástrojov na spracovanie súborov, pretože v mnohých aplikáciách slúži ako dátový sklad. Často sa vyžaduje prístup k súborom v jazyku Java pre Android. Všetky triedy pre prácu so súbormi sú umiestnené v balíku java.io, ktorý tiež ukladá triedy pre prácu so vstupnými a výstupnými tokmi. Práve v jazyku Java sa pracuje so súbormi najmä v dôsledku byte a znakov vstupných /výstupných prúdov. Výnimkou je trieda Súbor. Začnime s tým.

Trieda File Java - práca so súbormi

Trieda File interaguje priamo so súbormi a súbormi. Inštancia tejto triedy sa používa predovšetkým na prístup k vlastnostiam súborov a presúvaní prostredníctvom hierarchií podadresárov. Neurčuje spôsoby, ako extrahovať a ukladať údaje do súboru, ale s touto triedou môžete získať veľa informácií o súbore, dátume, čase, povoleniach a ceste k adresáru. V skutočnosti je trieda Súbor objektovo špecifická interpretácia súboru alebo adresára v jazyku Java.


Ak chcete vytvoriť inštanciu triedy Súbor, použite jeden z jej konštruktorov: Súbor (String cesta k priečinku, Názov súboru reťazca). Zvážte základné metódy tejto triedy, ktoré vám umožňujú získať informácie o súbore alebo adresári:
  • getName () - vráti názov súboru;
  • existuje () - vráti logickú hodnotu true, ak súbor existuje alebo inak false;
  • isFile () - definuje, špecifikuje objekt do súboru a vráti zodpovedajúcu logickú hodnotu;
  • isDirectory () - vracia true, ak ide o priečinok;
  • canWrite () - vracia true, ak je súbor k dispozícii na písanie;
  • canRead ()- vracia true, ak je súbor čitateľný;
  • setReadOnly () - je súbor iba na čítanie;
  • dĺžka () - vracia veľkosť súboru v bajtoch;
  • renameTo (File nový názov) - premenuje súbor je prenášaný v súlade s argumentom. Vracia true, ak je operácia úspešná;
  • odstrániť () - odoberie súbor alebo priečinok (ak je prázdna) so špicatým predmetom;
  • Zoznam () - načíta zoznam názvov predmetov uložených v tomto adresári ako pole riadkov (platí len pre adresáre).
  • Používanie triedy Súbor poskytuje Java prácu so súbormi a priečinkami.


    Práca so súbormi s využitím FileInputStream a triedy FileOutputStream

    Predtým sme sa zmienili, že Java súbory práce vykonávané najmä prostredníctvom IO prúdy. Byte prúdy pre súbor zastúpené triedy FileInputStream a FileOutputStream. Tieto triedy sú dedičmi abstraktné základné triedy InputStream a OutputStream poradí, pretože metódy týchto tried sú k dispozícii pre súbory. Najskôr zvážte súbor FileInputStream. Návrhári tejto triedy sú uvedené na obrázku nižšie:
    Prvé konštruktor berie ako parameter cestu k súboru ako reťazec, a druhá - v podobe reprezentácie objektu. Hoci prvé konštruktor sa používa častejšie v druhom prípade je príležitosťou k objavovaniu dostupných vlastností súborov v metódach triedy File. Pri vytvorení inštancie triedy FileInputStream open vstupného prúdu pre čítanie súboru.
    Konštruktory triedy FileOutputStream sú uvedené nižšie:
    Situáciapodobný FileInputStream, ale tiež to môže trvať logickú hodnotu "pridať", ktorý keď true označuje, že dáta zapisovateľný výsledný súbor bude dopysuvatysya existujúcim, a ak je false - pôjde plné prepísania, bude teda stará dáta budú stratené , Pozrime sa na príklad používajúci tieto triedy:
    FileInputStream vstupný prúd číta dáta z súbor file1.txt pobaytovo pomocou metódy read (). Každý čítaný bajt je uložený v celočíselnom integer. Potom v slučke, zatiaľ čo premenná odovzdaný ako argument k metóde kópie písať FileOutputStream, ktorý píše obdržal bajtov v súbore file2.txt. Na konci obidvoch vlákien sa povinné zatvorenie zavrie metódou zavretia.

    Triedy FileReader a FileWriter

    Ak samozrejme vedia, že pri práci so súbormi budete musieť vysporiadať s textom, namiesto bajtov tokov zmysel používať znak. Tieto vlákna predstavujú triedy FileReader a FileWriter v jazyku Java. Práca so súbormi využívajúcimi tieto triedy je zhruba rovnaká ako v predchádzajúcom prípade. Sú to potomkovia triedy Reader a Writer, ak príslušné základné techniky pre vstup a výstup. Návrhári tried FileReader a FileWriter sú uvedené na obrázku nižšie:
    Súhlasím, že prakticky neexistujú žiadne rozdiely v sémantike v porovnaní s bajtovými tokmi. Pointa je, že tieto triedy sú špeciálne navrhnuté pre prácu s Unicode, nemôže robiť byte prúdy. Takto sú organizované súbory jazyka Java. Príklad použitia týchto tried je uvedený nižšie:
    Ako vidíte,neboli pozorované žiadne rozdiely. Stojí za zmienku, že aj keď sú toky symbolické, metóda čítania sa vracia a metóda zápisu má celočíselnú hodnotu. Hoci podpis metódy písania zahŕňa prijatie argumentov typu int, iba 16 bitov je napísaných do streamu, pretože znaky v jazyku Java sú reprezentované len takým počtom bitov.

    Záver

    Takže sme rozobrali základné triedy pre prácu so súbormi v jazyku Java. Stojí za zmienku, že ak plánujete vývoj aplikácie Java z Androidu, môžete bezpečne použiť túto sadu nástrojov.

    Súvisiace publikácie