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.
Obsah
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:
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:
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:
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:
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:
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.
- Jak nainstalovat jazyk Java v systému Windows 7
- Jak aktualizovat jazyk Java v operačních systémech Linux a Windows?
- První program Java je Hello World
- Co jsou soubory? Typy souborů
- Struktura souborů operačních systémů a jejich klasifikace
- Jak a proč potřebuji instalovat Java na svém počítači?
- PHP. Práce se soubory a adresáři
- Java: regulární výrazy, speciální znaky
- Formát JAR: co se má otevřít v počítači nebo v telefonu
- Java není nainstalována: co mám dělat? Jak nainstalovat na Ubuntu?
- Java: InputStream. Vstupní toky
- Generika jazyka Java: Popis a metody
- BigInteger Java: práce s velkými čísly
- Java Array. Pole v Javě. Java pro začátečníky
- Prvky modelu objektu Java: abstraktní třída, rozhraní
- Jak povolit Javu ve Firefoxu pro problémy s uzamčením
- Práce se soubory. Jak změnit příponu souboru
- Atributy souboru
- Jak psát do souboru v jazyce Java
- Kontrola existence souboru PHP file_exists
- Jak sloučit soubory PDF