Zpět na blog
Vzdělávání

Java Files, Path, čítanie zo súboru

Skillmea tím
17.09.2020
5 minut čtení

File I/O (Featuring NIO.2)

Vo verzii 7 prišiel nový balík java.nio, v ktorom je nanovo urobené to, čo bolo v java.io. Chceš vedieť, ako čítať súbory (java read file)? Tak musíš vedieť, čo je to Path a Files.

Môžeš používať obidva balíky. Musíš si ale dávať pozor na to, že ak pracuješ na projekte, kde sa používa java 6 a prípadne nižšie, tak ti nepôjdu tieto nové veci. Ale uvažujme, že na takýchto starých projektoch nepracujeme a budeme si vysvetľovať veci s použitím tohto nového balíka.

Budeme si hovoriť o základných triedach Path a Files, budeme manipulovať so súbormi a priečinkami a tak podobne. Tu je zaujímavý link porovnania funkcionality spomenutých balíkov a aké chyby mala java.io:

https://docs.oracle.com/javase/tutorial/essential/io/legacy.html#mapping

Path

Jednoducho povedané je to linka na súbor alebo na priečinok v danom operačnom systéme. Súbory sú hierarchicky uložené. Vo windowse je na vrchu označenie disku napríklad C:\home\skuska. V linuxových systémoch je root začínajúci lomítkom / napríklad /home/skuska. Tu môžeme vidieť, že vo windowse a v linuxe sa používajú úplne iné oddeľovače. Na to treba pamätať.

Relatívna a absolútna cesta

Absolútnu cestu môžeme chápať ako úplnú celkovú adresu alebo cestu na súbor alebo priečinok.

C:\home\skuska je absolútna cesta, ktorá vždy obsahuje root, teda v tomto prípade označenie disku C:. Ak by som ale napísal len home\skuska\text.txt – tak vidím, že sa snažím pristúpiť na súbor text.txt, ktorý je umiestnení v priečinku home a skuska. Ale kde sa nachádza priecinok home? Bez ďalších informácii to neviem a to je relatívna cesta.

Trieda Path

Základná trieda v tomto balíku – používa sa aby uchovávala informácie o názve súboru, priečinkoch ktoré sú použité na skonštruovanie cesty aby bolo možné lokalizovať dané dokumenty alebo priečinky. Path na windowse je bude odlišná od Path na unixe.

Ak hovoríme o triede Path, tak môžeme v jednoduchosti povedať, že môžeme manipulovať s cestou, ktorá vedie k priečinkom alebo súborom.

Trieda Files

Táto trieda slúži na manipuláciu s priečinkami a súbormi. Používa triedu Path.

Keď pristupujeme k súborom alebo celkovo ku zdrojom na disku – tak sú „otvorené“. Potom s nimi pracujeme a keď už s nimi nepracujeme tak musíme zavolať „uzatvorenie“ práce s týmito zdrojmi aby ich mohol používať niekto iný.

Na automatické uzatvorenie môžeme použiť try-with-resources.

Práca so súbormi

Máš Path inštanciu, ktorá reprezentuje súbor alebo priečinok. Teraz ale ešte stále nevieš, či reálne tento súbor alebo priečinok existuje, či sa dá z neho čítať, či sa dá do neho zapisovať a podobne.


Existuje subor alebo neexistuje, môžem k nemu pristúpiť?

Path path = Paths.get("C:\\work\\tools\\Apache Software Foundation\\Tomcat6\\logs\\service-install.log");

System.out.println(Files.exists(path));

System.out.println(Files.notExists(path));

isReadable(Path)

isWritable(Path) isExecutable(Path)


Sú to rovnaké súbory? isSameFile(Path, Path)


mazanie súboru Files.delete(path);

Vyhodí to výnimku prečo sa to nepodarilo ak sa to nepodarilo. Metoda deleteIfExists(Path) tiež zmaže súbor ale ak súbor neexistuje tak sa nevyhodí výnimka.

 

kopírovanie súboru

Files.copy(source, target, REPLACE_EXISTING);

Do metody sa dajú dať varargs options. StandardCopyOption a LinkOption enums sú podporované. Všimni si, že ak dáš ctrl a click na copy metodu, tak je tam CopyOption... options. Potom klikni ctrl na copy option a zistíš že je to len interface ale v popise máš napísane, že vieš použiť StandartCopyOption čo implementuje CopyOption.

Tu si môžeš pozrieť implementácie CopyOption rozhrania.

Ak kopíruješ súbor na miesto kde sa takýto súbor už nachádza, tak sa súbor neprepíše ak nezadáš option REPLACE_EXISTING.

Priečinky sa dajú tiež kopírovať ale skopírujú sa prázdne  aj keď v nich bol nejaký súbor.

Čítanie sú súboru (read from file)

Konečne sme prišli na kus kódu, vďaka ktorému môžeš čítať zo súboru (read from file):

Path path = Paths.get("C:\\work\\tools\\Apache Software Foundation\\Tomcat6\\logs\\service-install.log");
List<String> lines = Files.readAllLines(path);
Skillmea tím

Sme jednotka v online vzdelávaní na Slovensku.

Na našom webe nájdeš viac ako 260 rôznych videokurzov z oblastí ako programovanie, tvorba hier, testovanie softwaru, grafika, UX dizajn, online marketing, MS Office a pod. Vyber si kurz, ktorý ťa posunie vpred ⏩

Mohlo by tě zajímat

Vzdělávání
28.07.2020
Skillmea tím

Matematické operácie v Exceli

Funkcie a vzorce sú možno najvyužívanejšou časťou Excelu a v tomto blogovom príspevku sa pozrieme na najdôležitejšie matematické operácie. Pomocou matematických operácií vieme vypočítať napríklad priemer, maximálne či minimálne hodnoty, súčty. Funkcia SUM (Súčet)Je to pravdepodobne najpoužívanejšia matematická funkcia, ktorá jednoducho spočíta hodnoty vo vybraných bunkách, viď obrázok nižšie. Funkciu SUM môžeme použiť aj na spočítanie normálnych čísiel, napr.  =SUM(9;2;8)funkcia nám dá výsledok 19. Funkcia SUMIF (Súčet na základe podmienky)Zaujímavou súčtovou matematickou funkciou je SUMIF, ktorá spočíta hodnoty s nejakou podmienkou. Napríklad z tabuľky nižšie chceme spočítať "Cenu po zlave" spolu za všetky objednávky z mesta Martin. V argumentoch funkcie SUMIF nás samotný Excel navádza na to, čo máme zadať. Boldom sú zvýraznené argumenty Kritériá a Rozsah, ktoré spolu súvisia. Kritériom je to, čo je našou podmienkou - teda konkrétne Martin. Rozsah sú tie bunky, v ktorých viete nájsť svoje kritériá. Čiže označíme stĺpec Mesto. Rozsah súhrnu je to, čo chcem spočítať - označíme teda stĺpec 'Cena po zlave'. Klikneme OK a dostaneme výsledný súčet.  Funkcia ROUND (Zaokrúhľovanie)Funkcia Round zaokrúhľuje matematicky.  Argumentami funkcie je číslo, ktoré chceme zaokrúhliť a druhý argument je na koľko desatinných miest chceme dané číslo zaokrúhliť. Funkcia SUBTOTAL (Súčtový riadok)Táto funkcia sa využíva pri tvorbe súčtových riadkov v tabuľkách. Jedná sa o praktickú funkciu, ktorá dokáže nahradiť niekoľko ďalších funkcií, napr. SUM, COUNT, MIN, MAX a pod. Jej veľkou výhodou je, že pokiaľ použijete napr. filter, umožní ti rozhodnúť sa, čo so skrytými riadkami. Pozrime si obrázky nižšie, v prvom nemáme použité žiadne filtrovanie a výsledky funkcií SUM aj SUBTOTAL sú zhodné. Keď sa však pozrieme na obrázok číslo dva, v ktorom sú už použité filtrovania, výsledky funkcií SUM a SUBTOTAL sú rozdielne a správny výsledok nám dáva práve funkcia SUBTOTAL. Je to práve kvôli tomu, že spočítava len viditeľné hodnoty v bunkách, nie hodnoty v bunkách, ktoré sú skryté. Funkciu subotal si vyvoláme ako každú inú funkciu a jej argumenty sú nasledovné:  • Číslo funkcie: pokiaľ nepoznáte presné číslo funkcie, je vhodné si otvoriť pomocníka a vyhľadať si tú správnu funkciu. V našom prípade je to číslo funckie 109, pretože ide o funkciu SUM a ignorujeme skryté hodnoty. • Odk1: rozsah, s ktorým má naša funkcia pracovať, čiže označíme všetký bunky, ktoré má funkcia spočítať alebo urobiť inú matematickú operáciu. Čísla funkcií pre funkciu SUBTOTAL: Číslo funkcie (zahŕňa skryté hodnoty)Číslo funkcie (ignoruje skryté hodnoty)Funkcia1101AVERAGE 2102COUNT3103COUNTA4104MAX5105MIN6106PRODUCT7107STDEV8108STDEVP9109SUM10110VAR11111VARP Average (Priemer)Matematická funkcia Average (Priemer) vypočíta priemernú hodnotu z rozsahu buniek. Vyvoláme si funkciu a do syntaxe označíme všetky hodnoty, z ktorých chceme vypočítať priemer.  Aj túto funckiu môžeme modifikovať pomocou IF a teda použiť funckiu s podmienkou AVERAGEIF. OdmocninaV Exceli viete veľmi rýchlo a jednoducho odmocňovať. Existuje na to matematická funkcia SQRT, ktorá má len jeden argument a teda číslo, z ktorého chceme druhú odmocninu vypočítať. Funkciu SQRT je možné použiť len pre druhú odmocninu. Ak chcete vypočítať inú, je potrebné použiť matematický vzorec Y(1/x) prípadne funkciu POWER(). Pokiaľ sa chceš zdokonaliť v Exceli, pozrite si niektorý z našich Excel online kurzov pre začiatočníkov alebo pokročilých. Ak sa chceš naučiť používať Excel ešte efektívnejšie, prečítaj si aj náš článok o klávesových skratkách v Exceli. V ďalšom blogovom príspevku sa pozrieme na ďalie zaujímavosti z Excelu, zameriame sa na vyhľadávacie funkcie VLOOKUP a HLOOKUP.
Vzdělávání
30.06.2020
Skillmea tím

Už 4 000 detí sa zúčastnilo webinárov STEM Kindloteka

Spoločnosť Amazon začala ponúkať v spolupráci so združením Learn2Code v apríli, počas pandémie a povinnej karantény, bezplatné online webináre STEM Kindloteka pre deti. Táto iniciatíva prebiehala súčasne v Česku i na Slovensku. Amazon chcel touto iniciatívou pomôcť deťom, ich rodičom a učiteľom v náročnom období, počas ktorého boli školy zatvorené. Od konca apríla až do konca júna združenie Learn2Code s podporou spoločnosti Amazon pripravilo 39 bezplatných webinárov, ktorých sa v obidvoch krajinách zúčastnilo 4 000 detí v priamom prenose. Dodatočne mali webináre na kanáli YouTube takmer 6 500 videní. Odozva od rodičov i detí bola veľmi pozitívna. „Syn je nadšený, Scratch-u sa venuje každý deň a vaše webináre sú super. Nestíha ich síce pozerať naživo ale na druhý deň ich pozerá na youtube a veľmi ho to baví!“ Hovorí pani Lenka, mama 9 ročného účastníka. Vyjadrenie syna bolo veľmi stručné ale výstižné: "Je to zábava a chcem sa prihlásiť aj na ďalší kurz." Webináre prebiehali dvakrát týždenne až do konca júna. Počas webinárov sa deti učili programovať v programovacom jazyku Scratch aj veľké hry ako napr. Flappy Bird, Pacman, Super Mario a ďalšie. Deti sa na nich učili všetko od začiatku až po zložitejšie príkazy. Po každom webinári dostali účastníci jeho videozáznam, zdrojové kódy, obrázky aj riešenia. Naše webináre sledovali aj učitelia, pre ktorých sa stali pomôckou. „Ja som bola veľmi spokojná s webinármi, veľa som sa naučila a účasťou na nich som získala nové zručnosti a cenné metodické materiály,“ hodnotí webináre Mária Vitikáčová, učiteľka zo ZŠ Bukovecká v Košiciach. „Super je archív a videonahrávky, ku ktorým sa môžeme kedykoľvek vrátiť,“ dodáva.     Účastníci mali možnosť pripojiť sa cez nástroj Zoom, v prípade, že sa chceli aktívne zapájať, alebo cez YouTube, ak chceli webinár len online sledovať. Všetky webináre si môžu aj naďalej pozrieť na YouTube kanáli Learn2Code. „Spolu bolo zrealizovaných takmer 40 webinárov, ktoré si deti hneď obľúbili. Aktívne sa do našich online stretnutí zapájali. Kládli veľa zvedavých otázok,“ povedal Marián Kristeľ marketing & operations z Learn2Code. „Každej lekcie sa zúčastnilo priemerne vyše 100 detí.” Spolupráca medzi Learn2Code a spoločnosťou Amazon zahŕňala tiež poskytnutie všetkých online kurzov pre deti od Learn2Code od polovice apríla do konca júna bezplatne. Aj táto aktivita zaznamenala veľký úspech. Na tieto kurzy sa od spustenia spolupráce prihlásilo viac ako 2000 používateľov. Keďže spolupráca medzi Learn2Code a Amazonom zaznamenala úspech, pripravili spoločne aj ďalší formát, tentokrát pre rodičov a učiteľov. V špeciálnom videu s Luciou Šickovou, spoluzakladateľkou svetovo úspešnej slovenskej firmy Pixel Federation, ktorá tvorí počítačové hry vysvetlili, aký význam môže mať programovanie vo výchove a rozvoji detí. Lucia Šicková je zároveň mamou troch malých detí. Zaoberali sa teda aj témami, akú školu a prečo navštevujú jej deti, či a koľko sa s deťmi učí a ako sa to zmenilo počas domácej karantény, či overené tipy, čo vo výchove funguje. „Keďže koronakríza odhalila rôzne nečakané otázky ohľadne vzdelávania a výchovy detí, rozhodli sme sa podporiť aj takýto formát pre rodičov a učiteľov. Veríme, že to bude pre rodičov užitočné,“ povedala Miroslava Jozová, PR manažérka Amazon pre ČR a Slovensko.
Vzdělávání
19.06.2020
Skillmea tím

Študijný plán pre budúceho Java programátora

Rozhodol si sa, že sa staneš Java programátorom. Dobrá voľba. V nasledujúcich riadkoch si prečítaj, kde začať, čo budeš potrebovať a ako dosiahnuť svoju vysnívanú métu. V tomto článku sa nebudeme venovať definícii programovania ani tomu, ktorý programovací jazyk si zvoliť. Budeme predpokladať, že si sa z istých dôvodov rozhodol práve pre Javu. Tými dôvodmi môže byť napríklad: • popularita Javy v programátorskom svete • dopyt po Java programátoroch na trhu práce • chceš naprogramovať Javovskú webovú alebo desktopovú aplikáciu • počul si, že Java je vhodná pre začiatočníkov v programovaní Popularita jazyka JavaPodľa indexu PYPL je Java druhým najpopulárnejším jazykom na svete. Rebríček PYPL je zostavovaný podľa toho, ako často sú tutoriály daného programovacieho jazyka vyhľadávané na Googli. Aj podľa iného indexu, TIOBE je Java druhá v rebríčku popularity, takže vybral si si správne.[Image] Dopyt po Java programátorochDopyt po Java programátoroch zistíš z pracovných portálov, napr. na Profesia.sk, robime.it alebo ďalších. V čase písania tohto článku bolo na Profesii viac ako 120 ponúk pri zadaní pozície "Java programátor" (z celkových 480 programátorských pozícií). Keď si teda vyberáš programovací jazyk, je dôležité, aby aj firmy v ňom robili svoje projekty, aby si mal z dlhodobého hľadiska dostatok príležitostí. Java túto podmienku bez problémov spĺňa. Čo chceš programovať?V Jave sa dajú programovať desktopové aj serverové aplikácie, vytvárať dynamické webové stránky, dá sa používať na prístup k dátam, umožňuje realizovať zložité distribuované výpočty a veľa ďalšieho. Javu využiješ aj pri programovaní Android aplikácií, takže jej využitie je takmer neobmedzené. Jazyk vhodný pre začiatočníkov?Java je tu s nami už pekne dlho, takže existuje veľa zdrojov na štúdium, či už vo forme online kurzov, kníh alebo iných možností. Java programátorov je takisto dostatok, takže pravdepodobne nebudeš mať problém zohnať niekoho na mentoring, ak sa rozhodneš ísť touto cestou. Java odvodzuje svoju syntax z jazyka C a mnoho ďalších jazykov takisto odvodzuje svoju syntax z jazyka C. Takže keď sa naučíš Javu, ovládnuť jazyky ako C#, C++ alebo JavaScript bude jednoduchšie. Java je objektovo orientovaný jazyk, tieto základné koncepty teda vieš preniesť aj do iných jazykov. V Jave existuje kopec rôznych knižníc - grafika, sockety, a mnoho ďalšieho. Naučiť sa Javu je relatívne jednoduché, vieš ju využívať vo svete desktopových alebo webových Java aplikácií, ale aj vo svete mobilných Android aplikácií. Javovský kód raz skompiluješ a beží všade (vďaka JVM!).  Java má aj svoje nevýhody, ako napr. to, že píšeš veľmi veľa kódu. Príklad, keď chceš niečo vypísať, v Jave to zapíšeš:  System.out.println(“Hello”); V Pythone by stačilo napísať len print(“Hello”). PeniazeKoľko zarábajú Java programátori? Podľa portálu platy.sk je to v rozmedzí 1350 až 2765 Eur. Záleží od tvojich znalostí, rokov praxe, projektov za sebou, regiónu a ďalších premenných.  Študijný Java plán Java základyNajskôr sa nauč úplné základy jazyka Java. Potrebuješ vedieť, čo je to trieda, čo je to metóda, čo je premenná, ako sa píšu príkazy, čo je terminál, výpis, podmienka, cyklus, ako pracuje Java s pamäťou a iné základné znalosti. S týmito základmi vieš písať jednoduché príkazy a trénovať. Odporúčame ti vyskúšať náš online kurz Java pre začiatočníkov, ktorý máš k dispozícii zdarma. Java pokročilýPo zvládnutí základov pristúpiš k pokročilým častiam jazyka ako sú výnimky, OOP (objektovo orientované programovanie), práca s Java triedami, rozhrania, rekurzia, funkcionálne programovanie pomocou Lambda výrazov, stream API, anotácie, reflexia, kolekcie, generické programovanie a podobne. Je toho dosť, pre úspešné zvládnutie zákutí Javy si namixuj tento koktail našich kurzov: 1. Java a OOP pre začiatočníkov 2. Java pre pokročilých SQLVeľké množstvo aplikácií pracuje sa databázami. Aby si aj ty v aplikáciách vedel správne používať databázu, musíš sa naučiť základy jazyka SQL. Pomocou SQL príkazov vieme z databázy čítať dáta, zapisovať dáta, meniť dáta, alebo ich mazať. Keď budeš študovať ako pracovať v aplikáciách s databázami, stretneš sa s pojmom CRUD. To nie je nič iné ako create, read, update a delete. Teda základné operácie. Yablko spravil online kurz na SQL databázy MySQL a SQLite, sú v ňom vysvetlované aj základy samotného SQL-ka, tak si to naštuduj. GitPri práci na projektoch musíš mať prehľad o zmenách v tvojom alebo kolegovom kóde. V priebehu času budeš mať určite množstvo verzií svojho programu. Ako programátor budeš pracovať v tíme. Každý bude pracovať na svojej časti programu a potom si tieto svoje verzie zlúčite dokopy. Nielen na tieto úlohy budeš používať Git. Git je najrozšírenejší verzionovací nástroj a určite stojí za to naučiť sa ho používať. Každý programátor musí vedieť pracovať s Gitom, nauč sa to aj ty pomocou tohto online kurzu. Java junior programátorNa záver tvojho vzdelávania v Jave nesmieš vynechať témy ako Maven, Servlety a ORM - JPA (Hibernate). Keď sa ti do hlavy dostanú aj tieto pojmy, je z teba junior programátor. Online kurz pre ašpirujúcich Java junior programátorov nájdeš tu. Bonus: Spring framework + Spring BootAby sa ti zo všetkým pracovalo jednoduchšie a chceš preskočiť pár krokov v príprave aplikácie, chceš mať po ruke množstvo pomocných technológií, tak určite siahneš po Spring frameworku. Spring je najpoužívanejší javovský vývojársky framework súčasnosti. Ak si otvoríš pracovné ponuky zamerané na Javu, tak tam takmer určite nájdeš požiadavku, aby si ovládal Spring. Spring uľahčuje enterprise java vývoj, čo ho robí prvou voľbou pri projektoch ľubovoľnej veľkosti. Vývoj Springu začal, keď bolo veľmi komplikované začať vyvíjať enterprise aplikácie v enterprise edícii javy. Tvorcovia Springu toto využili a vytvorili nástroj, ktorý je vysoko používaný a uľahčuje množstvo vecí. Tento blog mal za cieľ predstaviť ti jazyk Java a ukázať, čo všetko potrebuješ ako budúci Java programátor vedieť. Okrem Javy je to SQL, Git a ideálne aj Spring framework. Stať sa Java programátorom sa ti môže javiť ako nedosiahnuteľná méta, opak je ale pravdou. Java od začiatku navrhovaná tak, aby tvoja krivka učenia bola pokiaľ možno čo najstrmšia.

Nezmeškaj info o nových kurzoch a špeciálnych ponukách