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

Java Files, Path, čtení ze souboru

Skillmea
17.09.2020
5 minut čtení
Java Files, Path, čtení ze souboru

File I/O (Featuring NIO.2)

Ve verzi 7 přišel nový balík java.nio, ve kterém je nově uděláno to, co bylo v java.io. Chceš vědět, jak číst soubory (java read file)? Tak musíš vědět, co je to Path a Files.

Můžeš používat oba balíčky. Musíš si ale dávat pozor na to, že pokud pracuješ na projektu, kde se používá java 6 a případně níže, tak ti nepůjdou tyto nové věci. Ale uvažujme, že na takových starých projektech nepracujeme a budeme si vysvětlovat věci s použitím tohoto nového balíčku.

Budeme si mluvit o základních třídách Path a Files, budeme manipulovat se soubory a složkami a tak podobně. Zde je zajímavý link porovnání funkcionality zmíněných balíků a jaké chyby měla java.io:

Path

Jednoduše řečeno je to linka na soubor nebo na složku v daném operačním systému. Soubory jsou hierarchicky uloženy. Ve windowsu je na vrchu označení disku například C:\home\skuska. V linuxových systémech je root začínající lomítkem / například /home/skuska. Zde můžeme vidět, že ve windowsu a v linuxu se používají úplně jiné oddělovače. Na to je třeba pamatovat.

Relativní a absolutní cesta

Absolutní cestu můžeme chápat jako úplnou celkovou adresu nebo cestu na soubor nebo složku.
C:\home\skuska je absolutní cesta, která vždy obsahuje root, tedy v tomto případě označení disku C:. Pokud bych ale napsal jen home\skuska\text.txt - tak vidím, že se snažím přistoupit na soubor text.txt, který je umístěn ve složce home a skuska. Ale kde se nachází složka home? Bez dalších informací to nevím a to je relativní cesta.

Třída Path

Základní třída v tomto balíčku – používá se aby uchovávala informace o názvu souboru, složkách které jsou použity ke zkonstruování cesty aby bylo možné lokalizovat dané dokumenty nebo složky. Path na windowse je bude odlišná od Path na unixu.
Pokud mluvíme o třídě Path, tak můžeme v jednoduchosti říci, že můžeme manipulovat s cestou, která vede ke složkám nebo souborům.

Třída Files

Tato třída slouží k manipulaci se složkami a soubory. Používá třídu Path.
Když přistupujeme k souborům nebo celkově ke zdrojům na disku – tak jsou „otevřené“. Potom s nimi pracujeme a když už s nimi nepracujeme tak musíme zavolat „uzavření“ práce s těmito zdroji, aby je mohl používat někdo jiný.
K automatickému uzavření můžeme použít try-with-resources.

Práce se soubory

Máš Path instanci, která reprezentuje soubor nebo složku. Teď ale stále nevíš, jestli reálně tento soubor nebo složku existuje, jestli se dá z něj číst, zda se do něj dá zapisovat a podobně.

Existuje soubor nebo neexistuje, můžu k němu přistoupit?
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)


Jsou to stejné soubory? isSameFile(Path, Path)


mazání souboru Files.delete(path);
Vyhodí to výjimku proč se to nepodařilo, pokud se to nepodařilo. Metoda deleteIfExists(Path) také smaže soubor ale pokud soubor neexistuje tak se nevyhodí výjimka.
 
kopírování souboru
Files.copy(source, target, REPLACE_EXISTING);
Do metody lze dát varargs options. StandardCopyOption a LinkOption enums jsou podporovány. Všimni si, že pokud dáš ctrl a click na copy metodu, tak je tam CopyOption... options. Potom klikni ctrl na copy option a zjistíš, že je to jen interface, ale v popisu máš napsáno, že umíš použít StandartCopyOption, což implementuje CopyOption.
Tady si můžeš prohlédnout implementace CopyOption rozhraní.
Pokud kopíruješ soubor na místo kde se takový soubor již nachází, tak se soubor nepřepíše pokud nezadáš option REPLACE_EXISTING.
Složky lze také kopírovat ale zkopírují se prázdné i když v nich byl nějaký soubor.

Čtení jsou souboru (read from file)

Konečně jsme přišli na kus kódu, díky kterému můžeš číst ze souboru (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
🥇 Sme jednotka v online vzdelávaní na Slovensku.
Na našom webe nájdeš viac ako 300 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

Matematické operace v Excelu
Vzdělávání
28.07.2020
Skillmea

Matematické operace v Excelu

Funkce a vzorce jsou možná nejvyužívanější částí Excelu a v tomto blogovém příspěvku se podíváme na nejdůležitější matematické operace. Pomocí matematických operací umíme vypočítat například průměr, maximální či minimální hodnoty, součty. Funkce SUM (Součet)Je to pravděpodobně nejpoužívanější matematická funkce, která jednoduše spočítá hodnoty ve vybraných buňkách, viz obrázek níže. Funkci SUM můžeme použít i pro sčítání normálních čísel. =SUM(9;2;8)funkcia nám dá výsledok 19.[Image] Funkce SUMIF (Součet na základě podmínky)Zajímavou součtovou matematickou funkcí je SUMIF, která spočítá hodnoty s nějakou podmínkou. Například z tabulky níže chceme spočítat „Cenu po slevě“ spolu za všechny objednávky z města Martin. V argumentech funkce SUMIF nás samotný Excel navádí na to, co máme zadat. Boldem jsou zvýrazněny argumenty Kritéria a Rozsah, které spolu souvisí. Kritériem je to, co je naší podmínkou - tedy konkrétně Martin. Rozsah jsou ty buňky, ve kterých umíte najít svá kritéria. Čili označíme sloupec Město. Rozsah souhrnu je to, co chci spočítat - označíme tedy sloupec 'Cena po slevě'. Klepneme OK a dostaneme výsledný součet.[Image] Funkce ROUND (Zaokrouhlování)Funkce Round zaokrouhluje matematicky. Argumenty funkce je číslo, které chceme zaokrouhlit a druhý argument je na kolik desetinných míst chceme dané číslo zaokrouhlit.[Image] Funkce SUBTOTAL (Součtová řádka)Tato funkce se využívá při tvorbě součtových řádků v tabulkách. Jedná se o praktickou funkci, která dokáže nahradit několik dalších funkcí. SUM, COUNT, MIN, MAX a podobně. Její velkou výhodou je, že pokud použijete např. filtr, umožní ti rozhodnout se, co se skrytými řádky. Prohlédněte si obrázky níže, v prvním nemáme použito žádné filtrování a výsledky funkcí SUM i SUBTOTAL jsou shodné. Když se však podíváme na obrázek číslo dvě, ve kterém jsou již použita filtrování, výsledky funkcí SUM a SUBTOTAL jsou rozdílné a správný výsledek nám dává právě funkce SUBTOTAL. Je to právě kvůli tomu, že spočítává jen viditelné hodnoty v buňkách, nikoli hodnoty v buňkách, které jsou skryty.[Image][Image] Funkci subotal si vyvoláme jako každou jinou funkci a její argumenty jsou následující: • Číslo funkce: pokud neznáte přesné číslo funkce, je vhodné si otevřít pomocníka a vyhledat si tu správnou funkci. V našem případě je to číslo funkce 109, protože se jedná o funkci SUM a ignorujeme skryté hodnoty. • Odk1: rozsah, se kterým má naše funkce pracovat, tedy označíme všechny buňky, které má funkce spočítat nebo provést jinou matematickou operaci. Čísla funkcí pro funkci SUBTOTAL: Číslo funkce (zahrnuje skryté hodnoty)Číslo funkce (ignoruje skryté hodnoty)Funkce1101AVERAGE 2102COUNT3103COUNTA4104MAX5105MIN6106PRODUCT7107STDEV8108STDEVP9109SUM10110VAR11111VARP  Average (Průměr)Matematická funkPrůměrce Average (Průměr) vypočítá průměrnou hodnotu z rozsahu buněk. Vyvoláme si funkci a do syntaxe označíme všechny hodnoty, ze kterých chceme vypočítat průměr.[Image] I tuto funkci můžeme modifikovat pomocí IF a tedy použít funkci s podmínkou AVERAGEIF. OdmocninaV Excelu umíte velmi rychle a jednoduše odmocňovat. Existuje k tomu matematická funkce SQRT, která má jen jeden argument a tedy číslo, ze kterého chceme druhou odmocninu vypočítat. Funkci SQRT lze použít pouze pro druhou odmocninu. Chcete-li vypočítat jinou, je třeba použít matematický vzorec Y(1/x) případně funkci POWER(). Pokud se chceš zdokonalit v Excelu, podívejte se na některý z našich Excel online kurzov pro začátečníky alebo pokročilé. Pokud se chceš naučit používat Excel ještě efektivněji, přečti si i náš článek o klávesových zkratkách v Excelu. V dalším blogovém příspěvku se podíváme na dalí zajímavosti z Excelu, zaměříme se na vyhledávací funkce VLOOKUP a HLOOKUP.
Již 4 000 dětí se zúčastnilo webinářů STEM Kindloteka
Vzdělávání
30.06.2020
Skillmea

Již 4 000 dětí se zúčastnilo webinářů STEM Kindloteka

Společnost Amazon začala ve spolupráci se sdružením Learn2Code v dubnu, během pandemie a povinné karantény, bezplatné online webináře STEM Kindloteka pro děti. Tato iniciativa probíhala současně v Česku i na Slovensku. Amazon chtěl touto iniciativou pomoci dětem, jejich rodičům a učitelům v náročném období, během kterého byly školy zavřené. Od konce dubna až do konce června sdružení Learn2Code s podporou společnosti Amazon připravilo 39 bezplatných webinářů, kterých se v obou zemích zúčastnilo 4 000 dětí v přímém přenosu. Dodatečně měli webináře na kanálu YouTube téměř 6 500 vidění. Odezva od rodičů i dětí byla velmi pozitivní. „Syn je nadšený, Scratch-u se věnuje každý den a vaše webináře jsou super. Nestíhá je sice dívat živě ale druhý den je dívá na youtube a moc ho to baví!“ Říká paní Lenka, máma 9 letého účastníka. Vyjádření syna bylo velmi stručné ale výstižné: "Je to zábava a chci se přihlásit i na další kurz." Webináře probíhaly dvakrát týdně až do konce června. Během webinářů se děti učily programovat v programovacím jazyce Scratch i velké hry. Flappy Bird, Pacman, Super Mario a další. Děti se na nich učily vše od začátku až po složitější příkazy. Po každém webináři obdrželi účastníci jeho videozáznam, zdrojové kódy, obrázky i řešení. Naše webináře sledovali i učitelé, pro které se staly pomůckou. „Já jsem byla velmi spokojená s webináři, hodně jsem se naučila a účastí na nich jsem získala nové dovednosti a cenné metodické materiály,“ hodnotí webináře Mária Vitikáčová, učitelka ze ZŠ Bukovecká v Košicích. „Super je archiv a videonahrávky, ke kterým se můžeme kdykoli vrátit,“ dodává. Účastníci měli možnost připojit se přes nástroj Zoom, v případě, že se chtěli aktivně zapojovat, nebo přes YouTube, pokud chtěli webinář jen online sledovat. Všechny webináře si mohou i nadále prohlédnout na YouTube kanálu Learn2Code. „Spolu bylo zrealizováno téměř 40 webinářů, které si děti hned oblíbily. Aktivně se do našich online setkání zapojovali. Kladli spoustu zvědavých otázek,“ řekl Marián Kristeľ marketing & operations z Learn2Code. „Každé lekce se zúčastnilo průměrně přes 100 dětí.” Spolupráce mezi Learn2Code a společností Amazon zahrnovala také poskytnutí všech online kurzů pro děti od Learn2Code od poloviny dubna do konce června bezplatně. I tato aktivita zaznamenala velký úspěch. Na tyto kurzy se od spuštění spolupráce přihlásilo více než 2000 uživatelů. Jelikož spolupráce mezi Learn2Code a Amazonem zaznamenala úspěch, připravili společně i další formát, tentokrát pro rodiče a učitele. V speciálním videu s Lucií Šickovou, spoluzakladatelkou světově úspěšné slovenské firmy Pixel Federation, která tvoří počítačové hry vysvětlili, jaký význam může mít programování ve výchově a rozvoji dětí. Lucie Šicková je zároveň mámou tří malých dětí. Zabývali se tedy i tématy, jakou školu a proč navštěvují její děti, zda a kolik se s dětmi učí a jak se to změnilo během domácí karantény, zda ověřené tipy, co ve výchově funguje. „Jelikož koronakrize odhalila různé nečekané otázky ohledně vzdělávání a výchovy dětí, rozhodli jsme se podpořit i takový formát pro rodiče a učitele. Věříme, že to bude pro rodiče užitečné,“ řekla Miroslava Jozová, PR manažerka Amazon pro ČR a Slovensko.
Studijní plán pro budoucího Java programátora
Vzdělávání
19.06.2020
Skillmea

Studijní plán pro budoucího Java programátora

Rozhodl ses, že se staneš Java programátorem. Dobrá volba. V následujících řádcích si přečti, kde začít, co budeš potřebovat a jak dosáhnout své vysněné mety. V tomto článku se nebudeme věnovat definici programování ani tomu, který programovací jazyk si zvolit. Budeme předpokládat, že ses z jistých důvodů rozhodl právě pro Javu. Těmi důvody může být například: • popularita Javy v programátorském světě • poptávka po Java programátorech na trhu práce • chceš naprogramovat Javovskou webovou nebo desktopovou aplikaci slyšel jsi, že Java je vhodná pro začátečníky v programování Popularita jazyka JavaPodle indexu PYPL je Java druhým nejpopulárnějším jazykem na světě. Žebříček PYPL je sestavován podle toho, jak často jsou tutoriály daného programovacího jazyka vyhledávány na Googlu. I podle jiného indexu, TIOBE je Java druhá v žebříčku popularity, takže vybral sis správně.[Image] Poptávka po Java programátorechPoptávku po Java programátorech zjistíš z pracovních portálů, například. na Profesia.cz, robime.it nebo dalších. V době psaní tohoto článku bylo na Profesi více než 120 nabídek při zadání pozice "Java programátor" (z celkových 480 programátorských pozic). Když si tedy vybíráš programovací jazyk, je důležité, aby i firmy v něm dělaly své projekty, abys měl z dlouhodobého hlediska dostatek příležitostí. Java tuto podmínku bez problémů splňuje. Co chceš programovat?V Javě lze programovat desktopové i serverové aplikace, vytvářet dynamické webové stránky, lze je používat pro přístup k datům, umožňuje realizovat složité distribuované výpočty a mnoho dalšího. Jevu využiješ i při programování Android aplikací, takže její využití je téměř neomezené. Jazyk vhodný pro začátečníky?Java je tady s námi už pěkně dlouho, takže existuje mnoho zdrojů ke studiu, ať už ve formě online kurzů, knih nebo jiných možností. Java programátorů je také dostatek, takže pravděpodobně nebudeš mít problém sehnat někoho na mentoring, rozhodnete-li se jít touto cestou. Java odvozuje svou syntaxi z jazyka C a mnoho dalších jazyků také odvozuje svou syntaxi z jazyka C. Takže když se naučíš Javu, ovládnout jazyky jako C#, C++ nebo JavaScript bude jednodušší. Java je objektově orientovaný jazyk, tyto základní koncepty tedy umíš přenést i do jiných jazyků. V Javě existuje spousta různých knihoven - grafika, sockety, a mnoho dalšího. Naučit se Javu je relativně jednoduché, umíš ji využívat ve světě desktopových nebo webových Java aplikací, ale také ve světě mobilních Android aplikací. Jevovský kód jednou zkompiluješ a běží všude (díky JVM!). Java má i své nevýhody, jako například. to, že píšeš velmi mnoho kódu. Příklad, když chceš něco vypsat, v Javě to zapíšeš: System.out.println(“Hello”); V Pythonu by stačilo napsat jen print(“Hello”). PeniazeKolik vydělávají Java programátoři? Podle portálu platy.sk je to v rozmezí 1350 až 2765 Eur. Záleží na tvých znalostí, let praxe, projektů za sebou, regionu a dalších proměnných. Studijní Java plánJava základyNejprve se nauč úplné základy jazyka Java. Potřebuješ vědět, co je to třída, co je to metoda, co je proměnná, jak se píší příkazy, co je terminál, výpis, podmínka, cyklus, jak pracuje Java s pamětí a jiné základní znalosti. S těmito základy umíš psát jednoduché příkazy a trénovat. Doporučujeme ti vyzkoušet náš online kurz Java pro začátečníky, který máš k dispozici zdarma. Java pokročilýPo zvládnutí základů přistoupíš k pokročilým částem jazyka jako jsou výjimky, OOP (objektově orientované programování), práce s Java třídami, rozhraní, rekurze, funkcionální programování pomocí Lambda výrazů, stream API, anotace, reflexe, kolekce, generické programování a podobně. Je toho dost, pro úspěšné zvládnutí zákoutí Javy si namixuj tento koktejl našich kurzů: 1. Java a OOP pro začátečníky 2. Java pro pokročilé SQLVelké množství aplikací pracuje se databázemi. Abys i ty v aplikacích uměl správně používat databázi, musíš se naučit základy jazyka SQL. Pomocí SQL příkazů umíme z databáze číst data, zapisovat data, měnit data, nebo je mazat. Když budeš studovat jak pracovat v aplikacích s databázemi, setkáš se s pojmem CRUD. To není nic jiného než create, read, update a delete. Tedy základní operace. Yablko udělal online kurz na SQL databázy MySQL a SQLite, jsou v něm vysvětlovány i základy samotného SQL-ka, tak si to nastuduj. GitPři práci na projektech musíš mít přehled o změnách ve tvém nebo kolegovém kódu. V průběhu času budeš mít určitě spoustu verzí svého programu. Jako programátor budeš pracovat v týmu. Každý bude pracovat na své části programu a poté si tyto své verze sloučíte dohromady. Nejen pro tyto úkoly budeš používat Git. Git je nejrozšířenější verzionovací nástroj a určitě stojí za to naučit se jej používat. Každý programátor musí umět pracovat s Gitem, nauč se to i ty pomocí tohto online kurzu. Java junior programátorNa závěr tvého vzdělávání v Javě nesmíš vynechat témata jako Maven, Servlety a ORM - JPA (Hibernate). Když se ti do hlavy dostanou i tyto pojmy, je z tebe junior programátor. Online kurz pro aspirující Java junior programátory najdeš zde. Bonus: Spring framework + Spring BootAby se ti se vším pracovalo snadněji a chceš přeskočit pár kroků v přípravě aplikace, chceš mít po ruce spoustu pomocných technologií, tak určitě sáhneš po Spring frameworku. Spring je nejpoužívanější javovský vývojářský framework současnosti. Pokud si otevřeš pracovní nabídky zaměřené na Javu, tak tam téměř určitě najdeš požadavek, abys ovládal Spring. Spring usnadňuje enterprise java vývoj, což jej činí první volbou u projektů libovolné velikosti. Vývoj Springu začal, když bylo velmi komplikované začít vyvíjet enterprise aplikace v enterprise edici jevy. Tvůrci Springu toto využili a vytvořili nástroj, který je vysoce používaný a usnadňuje spoustu věcí. Tento blog měl za cíl představit ti jazyk Java a ukázat, co všechno potřebuješ jako příští Java programátor vědět. Kromě Javy je to SQL, Git a ideální také Spring framework. Stát se Java programátorem se ti může jevit jako nedosažitelná meta, opak je ale pravdou. Java od začátku navrhovaná tak, aby tvá křivka učení byla pokud možno co nejstrmější.

Nezmeškej info o nových kurzech a speciálních nabídkách