Obsah
Navzdory spolupráci s Databáze Je to velmi dobrá věc a ušetří nám to spoustu práce při zadávání dotazů a souvisejících záznamů, jsou chvíle, kdy potřebujeme generovat soubory, protože nemáme server Databáze k dispozici nebo možná proto, že nepotřebujeme uložit záznam, ale nesouvisející sadu dat.Správa souborů je oblast, kterou mnozí stále považují za složitou nebo možná zastaralou. To je však nesprávné, generování souborů je při vývoji systémů a aplikací zásadní. Soubor se může pohybovat od generování souboru .txt zvláště u některých linek, až do generování velkých .xml že můžeme definovat konfiguraci.
Aby bylo možné zvládnout vše, co zahrnuje vytvoření souboru v systému, Jáva počítejte se třídou Soubor v balíčku knihovny pro zpracování a zadávání dat java.io. Tato třída nám poskytuje různé metody, které nám umožňují provádět operace od vytvářet a mazat soubory, vytvářet adresáře, ověřovat oprávnění atd..
Než uvidíme v praxi, jak můžeme třídu použít k provádění operací se soubory, musíme pochopit, že provádějí některé ze svých hlavních metod. Díky tomu budeme mít teoretický základ, ke kterému se můžeme dostat, když nám bude předložen konkrétní problém, který vyžaduje nakládání se soubory v našich programech:
existuje ()Tato metoda nám dává booleovskou odpověď na existenci určitého souboru v adresáři, který zadáme při jeho vyvolání, samozřejmě vrátí true nebo true, pokud je soubor nalezen, a false nebo false, pokud není.
getCanonicalPath ()Tato metoda vrací úplné jméno včetně cesty k souboru, je velmi důležité získat absolutní pozici našeho souboru v systému, kde provádíme náš program.
getName ()Na rozdíl od předchozí metody vrací pouze relativní a krátký název souboru, tj. Bez adresy nebo složky, kde se nachází.
canRead ()Tato metoda nám umožňuje ověřit, zda máme oprávnění ke čtení souboru, je velmi důležité ověřit, zda můžeme soubor přečíst nebo ne, než s ním zahájíme operaci, tímto způsobem můžeme omezit výjimky a ušetřit systémové prostředky.
canWrite ()Toto je další metoda, která nám pomáhá ověřit oprávnění k souborům při použití na instanci třídy Soubor dá nám vědět, zda můžeme zapsat odpovídající soubor.
délka ()Tato metoda je jednou z nejužitečnějších, protože nám umožňuje znát velikost souboru, což je důležitá kontrola při zpracování.
isFile ()Nakonec nám tato metoda umožňuje vědět, jestli to, co vyhodnocujeme, je soubor nebo adresář, takže budeme vědět, jestli pracujeme na struktuře, kterou chceme.
The vytvoření souboru Je to proces, kterým píšeme v systému, kde běží náš program. Je rozdíl mezi zápisem souboru a zápisem do souboru, první nám říká, že soubor generujeme v rámci systému, ale obsah jsme do něj nutně nepřidali; Na druhou stranu nám druhá říká, že přidáváme obsah do existujícího souboru.
Mohou se divit, proč chceme prázdný soubor, prázdný soubor není zbytečný, může být součástí většího procesu v rámci aplikace, například metoda vytvoří soubor a po výsledku procesu se o přidání postará jiná metoda data k tomu. Může to být také zásadní při ověřování, kde generujeme dočasné soubory, abychom programu naznačili, ve které fázi procesu se nacházíme atd.
Podívejme se níže na malý kód, kde generujeme prázdný plochý soubor.
import java.io. *; import java.io.File; public class CreateFiles {public static void main (String [] argv) throws IOException {if (argv.length == 0) {System.err.println ("You must enter a name by parameter"); System.exit (1); } pro (Název řetězce: argv) {nový Soubor (název_souboru) .createNewFile (); }}}
Vidíme, že první věc, kterou děláme, je import tříd java.io mít přístup k zpracování výjimek pomocí IOException, pak importujeme třídu java.io.Soubor což nám umožňuje přímo manipulovat se soubory.
Poté vytvoříme naši třídu a její metodu hlavní Udáváme, že bude přijímat argumenty, děláme to proto, abychom dynamicky označovali názvy souborů. Protože potřebujeme jméno, provedeme malou validaci, která indikuje, že pokud název souboru není přijat, je požádán o jeho umístění a program je ukončen. Nakonec pro každý přijatý argument vytvoříme nový soubor, čímž uděláme novou instanci třídy Soubor a s metodou createNewFile () vygenerujeme soubor v systému.
Musíme si být vědomi toho, že pokud náš program nemá dostatečná oprávnění k vytvoření souboru ve svém adresáři, zobrazí se chyba. Bez dalších okolků se podívejme, jak náš program vypadá, když jej spustíme na konzole:
ZVĚTŠIT
Můžeme vidět, jak naše počáteční ověření fungovalo, a poté, co jsme předali název souboru, který byl vygenerován, abychom ověřili ten druhý, jednoduše jsme provedli dir našeho adresáře a tím ověřujeme existenci souboru.Další z nejběžnějších operací při práci se soubory po zápisu a odstranění je přejmenování, proto v Jáva Musíme sledovat proces, který se může zdát komplikovaný, ale jak uvidíme na příkladu, který bude doprovázet vysvětlení, je to něco docela snadno pochopitelného.
Jak to udělat?Přejmenujte soubor v Jáva vyžaduje dva objekty typu Soubor, první bude obsahovat soubor, který chceme přejmenovat a druhý obsahuje nový název souboru, jakmile splníme tyto podmínky, musíme zavolat metodu renameTo () přes existující souborový objekt a předejte mu nový objekt s novým názvem.
Podívejme se na kód, který potřebujeme k provedení operace přejmenování v našem souboru:
import java.io. *; import java.io.File; public class RenameFiles {public static void main (String [] argv) throws IOException {File FirstObject = new File ("NewFile.txt"); Soubor secondobject = nový soubor ("FileWithNewName.txt"); FirstObject.renameTo (SecondObject); }}
Importujeme odpovídající třídy a balíčky, přičemž zůstanou stejné jako v předchozím příkladu.
Uvnitř metody hlavní () vytvoříme náš první objekt a vložíme název souboru, který jsme vytvořili v předchozím příkladu, v tomto případě je FileNew.txt. Poté vytvoříme druhý objekt s novým názvem, který chceme pro náš soubor, v příkladu, který jsme vybrali SouborWithNewName.txt.
Nakonec na první objekt použijeme metodu renameTo () a jako argument nebo parametr mu předáme druhý objekt, který má nový název pro náš soubor. Podívejme se, jak to vypadá na konzole, když spustíme náš kód:
ZVĚTŠIT
Všimli jsme si, jak se složka změnila, a nyní odráží náš nový soubor ve srovnání s provedením prvního příkladu vytvoření souboru.Konečně se dočkáme další operace, která je při práci se soubory zcela běžná a tou je smazání, toto je možná jedna z nejjednodušších, protože potřebujeme znát pouze název souboru, ověřit, že existuje a poté pokračovat v mazání pomocí metody odstranit () kde předáme název dotyčného souboru. Podívejme se v následujícím kódu, jak toho dosáhneme:
import java.io. *; import java.io.File; public class DeleteFile {public static void main (String [] argv) {delete ('FileWithNewName.txt'); } public static void delete (String filenameDelete) {try {File file = new File (filenameDelete); if (! file.exists ()) {System.err.println ("Soubor" + filenameDelete + "v tomto adresáři neexistuje"); vrátit se; } if (file.delete ()) System.err.println ("** Soubor" + fileNameDelete + "byl odstraněn **"); else System.err.println ("Nelze smazat soubor:" + filenameDelete); } catch (SecurityException e) {System.err.println ("Nelze odstranit soubor:" + DeleteFileName + "(" + e.getMessage () + ")"); }}}
Vidíme, že tento program je o něco rozsáhlejší než ty předchozí, protože jsme vytvořili soubor opakovaně použitelná funkce Pro odstranění souborů, kde nejprve ověříme, že soubor existuje, pak přistoupíme k jeho odstranění, zde ověříme, že byl skutečně odstraněn, jinak informujeme uživatele, že soubor nelze odstranit ze systému souborů.
V konzole vidíme, jak jsme byli schopni úspěšně provést tuto operaci, proto používáme soubor, který jsme přejmenovali v předchozím příkladu, takže když vytvoříme seznam obsahu složky, zobrazí se promítnutá změna:
ZVĚTŠIT
Nakonec se pokusíme znovu odstranit, abychom mohli sledovat, jak validace fungují:ZVĚTŠIT
Tímto tento tutoriál ukončujeme, naučili jsme se generovat soubory, kromě provádění dvou nejpoužívanějších akcí pro manipulaci se soubory, takže můžeme tyto techniky začlenit do našich programů a aplikací a užívat si výhod, které vám tento typ technik přináší nám může přinést.