Práca so súbormi Java 3. diel: Tipy a triky

Práca so súbormi je základnou funkcionalitou mnohých aplikácií v jazyku Java, či už ide o čítanie konfiguračných súborov, spracovanie údajov používateľa alebo ukladanie aplikačných protokolov. Aj keď Java ponúka komplexné možnosti spracovania súborov, efektívne a spoľahlivé riadenie súborov vyžaduje dôkladne porozumenie najvhodnejším postupom a technikám.

V tomto článku sme si pre teba pripravili množstvo tipov a trikov pre prácu so súbormi v jazyku Java. Od riešenia výnimiek a optimalizácie výkonu po zabezpečenie integrity a bezpečnosti súborov, tieto tipy a triky ti pomôžu zefektívniť prácu so súbormi.

Prečítaj si aj ďalšie podobné články zo seriálu Práca so súbormi Java::

Nezabudni zatvoriť na konci dátový prúd (file stream)

Po dokončení práce so súborom je veľmi dôležité zatvoriť prúd súborov, aby sa uvoľnili systémové zdroje, ktoré operačný systém vyhradil. To sa dá dosiahnuť pomocou metódy close(). Vo výstupnom streame táto metóda pred uvoľnením zdrojov najskôr zavolá metódu flush(), ktorá sa postará o to, aby vo vyrovnávacej pamäti neostali žiadne nezapísane bajty a všetky boli zapísané do streamu.

Nauč sa používať try-with-resources

Pri čítaní alebo zápise do súboru je dôležité správne riešiť otvorenie a zatvorenie prúdu súborov. Na zatváranie veľa programátorov zabúda, preto Java 7 predstavila konštrukciu try-with-resources, ktorá automaticky zatvorí prúd súborov po vykonaní try bloku kódu.

Vždy keď sa dá, používaj prúdy s vyrovnávaciu pamäťou (buffered streams)

Čítanie alebo zápis veľkých súborov môže byť zdrojom zníženého výkonu aplikácie. Použitie vyrovnávacích prúdov môže pomôcť zlepšiť výkon tým, že sa zníži počet I/O operácií, načítava/zapisuje sa tak viac dát z buffera a menej často.

Ošetruj výnimky

Pri čítaní alebo zápise do súboru je dôležité riešiť akékoľvek výnimky, ktoré môžu nastať. Časté výnimky zahŕňajú FileNotFoundException a IOException. Napr. ak sa pokúsime čítať zo súboru, ktorý neexistuje, program vyhodí FileNotFoundException výnimku. Naopak, ak sa pokúsime zapísať dáta do súboru, ktorý neexistuje, súbor sa najskôr vytvorí a program nevyhodí žiadnu výnimku.

Používaj vhodné kódovanie (encoding)

Pri čítaní alebo zápise textových súborov je dôležité použiť vhodné kódovanie. Predvolené kódovanie používané v Jave je obvykle UTF-8, ale to nemusí byť vhodné pre všetky scenáre.

Používaj relatívne cesty k súborom

Pri práci so súbormi je najlepšie používať relatívne cesty namiesto absolútnych ciest. Tým sa kód stáva prenosnejším a jednoduchšie sa udržiava.

Spravuj oprávnenia súborov

Pred vykonaním akýchkoľvek operácií so súbormi sa uisti, že sú nastavené vhodné oprávnenia súborov. Nekorektné oprávnenia môžu viesť k chybám alebo bezpečnostným zraniteľnostiam. Na úpravu oprávnení môžeme použiť metódy File.setReadable(), File.setWritable() a File.setExecutable().

Vytváraj opisné názvy súborov

Pri vytváraní nových súborov je dôležité používať opisné názvy súborov, ktoré sú ľahko pochopiteľné a udržiavateľné. To môže pomôcť predchádzať konfliktom v názvoch a uľahčiť nájdenie a správu súborov.

Používaj konštanty pre cesty k súborom

Pri práci s cestami k súborom je najlepšie používať konštanty namiesto tvrdého kódovania ciest v kóde. Tým sa zjednodušuje aktualizácia ciest k súborom v budúcnosti.

Skontrolujte existenciu súboru

Pred čítaním alebo zápisom do súboru je dôležité skontrolovať, či súbor existuje. To je možné urobiť pomocou metódy File.exists().

Používaj sledovanie súborov pre aktualizácie v reálnom čase

Ak potrebuješ sledovať zmeny v súbore v reálnom čase, zváž použitie rozhrania Watch Service, ktoré bolo predstavené v Jave 7. To umožňuje aplikácii dostávať oznámenia, keď sú súbory alebo adresáre vo sledovanej zložke upravované.

Využívaj metadáta súborov

Extrahovanie metadát, ako je veľkosť súboru, dátum vytvorenia, dátum poslednej úpravy a typ súboru, môže poskytnúť cenné informácie o súboroch, s ktorými pracujeme. Java má balík java.nio.file.attribute, ktorý poskytuje triedy ako BasicFileAttributes pre efektívne získavanie takýchto metadát.

Over si integritu súborov kontrolnými súčtami

Na overenie integrity súboru môžeme vypočítať jeho kontrolný súčet pomocou algoritmov ako MD5 alebo SHA. Porovnaním vypočítaného kontrolného súčtu so známou hodnotou zistíme, čí súbor nebol počas kopírovania (alebo sťahovania), resp. uloženia poškodený alebo upravený.

Bezpečne maž súbory

Pri mazaní súborov programovo vždy dvojnásobne skontroluj, či bolo mazanie súboru úspešné. Ak mazanie súboru zlyhá, dôkladne ošetri danú situáciu a zváž na ďalšiu analýzu zalogovanie chyby. Na mazanie súborov v Jave môžeme použiť metódu File.delete().

Používaj uzamykanie súborov

Pri práci so súbormi je dôležité spravovať uzamykanie súborov, aby sa zabránilo tomu, že budú viaceré procesy v danom čase pristupovať k tomu istému súboru súčasne. Java ponúka množstvo metód na zamknutie súborov, vrátane metódy FileChannel.lock().

Ak si Java programátor a hľadáš prácu, pozri si naše benefity pre zamestnancov a reaguj na najnovšie ponuky práce.

O autorovi

Jozef Wagner

Java Developer Senior

Viac ako 10 rokov programujem v Jave, momentálne pracujem v msg life Slovakia ako Java programátor senior a pomáham zákazníkom implementovať ich požiadavky do poistného softvéru Life Factory. Vo voľnom čase si rád oddýchnem v lese, prípadne si zahrám nejakú dobrú počítačovú hru.

Daj nám o sebe vedieť