nisfarm.ru

Java: práce se soubory - psaní, čtení, mazání

Java má mnoho nástrojů pro práci se soubory, protože slouží jako úložiště dat v mnoha programech. Zvláště často je vyžadován přístup k souborům v jazyce Java pro Android. Všechny třídy pro práci se soubory jsou umístěny v balíčku java.io, který také ukládá třídy pro práci se vstupními a výstupními toky. Přísně řečeno, v jazyce Java se práce se soubory vyskytuje převážně bajtem a znakovými toky vstupů a výstupů. Výjimkou v tomto případě je třída File. Začneme s tím.

Soubor třídy Java - práce se soubory

Třída Soubor spolupracuje přímo se soubory a systémem souborů. Instance této třídy se používá především pro přístup vlastnosti souboru a pohybující se hierarchie podadresářů. Neurčuje, jak lze soubory extrahovat a ukládat do souboru, ale s touto třídou můžete získat mnoho informací o samotném souboru: datum, čas, přístupová práva a cesta k adresáři. Ve skutečnosti je třída File předmětem interpretace souboru nebo adresáře v Javě.

Chcete-li vytvořit instanci třídy File, použijte jeden z jejích konstruktorů: Soubor (cesta ke složce, název souboru řetězce).

Zvažme hlavní metody této třídy, které vám umožňují získat informace o souboru nebo adresáři:

  • getName () - vrátí název souboru;
  • exists () - vrátí Boolean hodnotu true, pokud soubor existuje nebo false jinak;
  • isFile () - určuje, zda objekt odkazuje na soubor, vrátí odpovídající booleovskou hodnotu;
  • isDirectory () - vrací true, jestliže je to složka;
  • canWrite () - vrátí true, je-li soubor zapisovatelný;
  • canRead () - vrátí true, je-li soubor čitelný;
  • setReadOnly () - dělá soubor jen pro čtení;
  • length () - vrací velikost souboru v bytech;
  • renameTo (File nové jméno) - přejmenuje aktuální soubor podle předaného argumentu. Vrací true, pokud je operace úspěšná;
  • delete () - odstraní soubor nebo složku (je-li prázdná), na které odkazuje volající objekt;
  • seznam () - načte seznam názvů objektů uložených v tomto adresáři jako pole řetězců (platí pouze pro adresáře).

Třída File tedy pracuje se soubory a složkami.

Práce se soubory pomocí tříd FileInputStream a FileOutputStream

Dříve jsme se zmínili o tom, že v Javě se práce se soubory provádí hlavně prostřednictvím I / O toků. Bajtové toky pro práci se soubory jsou reprezentovány jako třídy FileInputStream a FileOutputStream. Tyto třídy jsou dědicové základních abstraktní třídy InputStream a OutputStream, takže metody těchto tříd jsou k dispozici pro práci se soubory.




Zvažte nejprve soubor FileInputStream. Konstruktory této třídy jsou uvedeny na následujícím obrázku:

java pracuje se soubory

První konstruktor brání cestu k cílovému souboru jako řetězec a druhý konstruktor jako reprezentace objektu. Ačkoli první konstruktor je používán častěji, ve druhém případě je možné studovat vlastnosti souboru dostupné v metodách třídy File. Když je vytvořena instance třídy, FileInputStream otevře vstupní proud pro čtení souboru.

Konstruktory třídy FileOutputStream jsou zobrazeny níže:

java android

Situace je podobná FileInputStream, ale také to může trvat logickou hodnotu „append“, který, když pravda, označuje, že data zapsána do cílového souboru, bude připojen k existující, a pokud má hodnotu false - půjde plné přepsání souboru, tj staré údaje nebudou uloženy.

Podívejme se na příklad používající tyto třídy:

java pracující s příklady souborů

Vstupní proud FileInputStream čte data ze souboru file1.txt bytem pomocí metody read (). Každý bajt pro čtení je uložen v proměnné v celočíselné podobě. Dále v těle zatímco tato proměnná je předána jako argument pro metodu zápisu instance FileOutputStream, která zapíše přijatý bajt do souboru2.txt. Na závěr jsou obě závity zavřeny metodou blízké.

Třídy FileReader a FileWriter

Pokud víte, že při práci s soubory se zabýváte textem, pak namísto byteových toků je smysl používat symboly. Tyto proudy jsou reprezentovány třídami FileReader a FileWriter v jazyce Java. Práce se soubory používajícími tyto třídy je přibližně stejná jako v předchozím případě. Jsou potomky tříd Reader a Writer, které definují základní metody pro vstup a výstup dat.

Konstruktory pro třídy FileReader a FileWriter jsou zobrazeny na následujícím obrázku:

java pracuje se soubory a složkami

Souhlasíte s tím, že v sémantikách neexistují prakticky žádné rozdíly ve srovnání s byteovými toky. Spodní čára je, že tyto třídy jsou navrženy speciálně pro práci s znaky Unicode, které nemohou dělat bytové toky. Tak pracuje se soubory Java soubory Java. Příklad použití těchto tříd je uveden níže:

java pracuje se soubory

Jak vidíte, nejsou žádné rozdíly. Je třeba poznamenat, že ačkoliv jsou vlákna symbolická, vrátí se metoda čtení a způsob zápisu má celočíselnou hodnotu. Přestože podpis metody zápisu předpokládá argument int, do streamu jsou zapsány pouze nižší 16 bitů, jelikož znaky v jazyce Java jsou reprezentovány přesně tímto počtem bitů.

Závěr

Takže jsme rozdělili hlavní třídy pro práci se soubory v Javě. Stojí za zmínku, že pokud se chystáte vyvíjet software pro Java Android, můžete bezpečně používat tento nástroj.

Sdílet na sociálních sítích:

Podobné
© 2021 nisfarm.ru