Avatar
mira9825_CZ
Člen
Avatar
mira9825_CZ:

Mohl by mi někdo z vás poradit nebo napsat odkaz na článek kde zjistím co mám napsat do programu aby vytvořil textový soubor a mohlo se pak do něj zapisovat

 
Odpovědět 11.2.2014 15:08
Avatar
Paul
Člen
Avatar
Paul:

Přímo tady na webu je výbornej tutoriál o práci se soubory v Javě:
http://www.itnetwork.cz/java/soubory

 
Nahoru Odpovědět 11.2.2014 15:14
Avatar
mira9825_CZ
Člen
Avatar
mira9825_CZ:

Děkuji

 
Nahoru Odpovědět 11.2.2014 15:35
Avatar
Benjibs
Člen
Avatar
Odpovídá na mira9825_CZ
Benjibs:

Ohľadom práce so súbormi by som skôr odporučil tento tutoriál, http://docs.oracle.com/…/fileio.html,
nakoľko popisuje lepšie a modernejšie API.

Nahoru Odpovědět 11.2.2014 15:40
1 + 1 = 2
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Benjibs
David Čápka:

Můžeš upřesnit jaké modernější API máš na mysli? Když jsme články psal, dával jsem si záležet, aby to bylo co nejmodernější, používám tam TWR a podobně. Navíc manuál Javy je velmi nekvalitní, nejen, že je nepřehledný sám o sobě, ale ani nemají zvýrazněné zdrojáky.

Nahoru Odpovědět 11.2.2014 16:35
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Benjibs
Člen
Avatar
Odpovídá na David Čápka
Benjibs:

Mám na mysli java.nio, triedy Files, Path, a podobne ako alternatívu k veciam predstaveným napr. v tomto článku: http://www.itnetwork.cz/…-soubory-txt.
nio bolo pritom prístupné už od Javy 4, alebo 5, teraz presne neviem.
S neprehladnostou dokumentácie máš pravdu, ale napríklad aj odkaz ktorý som dával vyššie obsahuje dodatočné množstvo informácii.

Editováno 11.2.2014 16:40
Nahoru Odpovědět 11.2.2014 16:40
1 + 1 = 2
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Benjibs
David Čápka:

Files pokud vím (v té dokumentaci se prostě nevyznám) umožňuje jen věci jako načíst všechny řádky atd. To je pro velké soubory nepoužitelné, proto takové API neučím, učím co je univerzální.

Pracuji s dokumentací několika jazyků a ta Javy je naprosto nedostatečná, tady se neshodneme :)

Nahoru Odpovědět  +1 11.2.2014 16:52
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na David Čápka
Zdeněk Pavlátka:

Dokumentace k javě je otřesná. 3 hodiny jsem tam hledal něco použitelného k výjimkám. Pak jsem se na to vykašlal a odvodil to ze C#.

Nahoru Odpovědět 11.2.2014 16:59
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Benjibs
Člen
Avatar
Odpovídá na David Čápka
Benjibs:

Files obsahuje presne rovnakú funkcionalitu ako tá, ktorá bola predstavená tebou v tom článku: http://docs.oracle.com/…io/file.html#…
akorát toho zvládne ešte omnoho viac.

Nahoru Odpovědět 11.2.2014 17:00
1 + 1 = 2
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Benjibs
David Čápka:

Můžeš prosím uvést konkrétní kód, který přes třídu Files načte jen několik řádek ze souboru? Odkazy na dokumentaci mně a většině lidí bohužel nepomohou.

Nahoru Odpovědět 11.2.2014 17:04
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Benjibs
Člen
Avatar
Odpovídá na David Čápka
Benjibs:

Veď to nie je dokumentácia, ale tutoriál k NIO (ten link mohol zmiasť kedže sa začína na docs.oracle :D):

Charset charset = Charset.forName("US-ASCII");
try (BufferedReader reader = Files.newBufferedReader(file, charset)) {
    String line = null;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException x) {
    System.err.format("IOException: %s%n", x);
}
Editováno 11.2.2014 17:08
Nahoru Odpovědět  +1 11.2.2014 17:07
1 + 1 = 2
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Benjibs
Zdeněk Pavlátka:

Ale kódy jsou tam stejně nezvýrazněné.

Nahoru Odpovědět 11.2.2014 17:09
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Benjibs
David Čápka:

No, to je teda opravdu rozdíl :)

Nahoru Odpovědět  +1 11.2.2014 17:09
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Benjibs
Člen
Avatar
Odpovídá na David Čápka
Benjibs:

To je predsa len dobre, keď je to podobné starému API, nie?
Určite by sa páni vývojári nenamáhali s prekopaním celého IO API, ak by na to nebol pádny dôvod ;)

Nahoru Odpovědět 11.2.2014 17:12
1 + 1 = 2
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Benjibs
David Čápka:

Není to podobné, je to stejné. Files má na sobě jen nějakou metodu, co si vnitřně vytvoří reader a načte ty všechny řádky. Jinak se dělá vše stejně. Co je popsané tady je správně a aktuální.

Nahoru Odpovědět  +1 11.2.2014 17:16
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Benjibs
Člen
Avatar
Odpovídá na David Čápka
Benjibs:

Dobre, tak dajme tomu, že konkrétne v tomto prípade je to jedno (aj keď je možné že implementácia statickej newBufferedReader môže obsahovať nejaké užitočné veci),
v 2. článku série o súboroch je popisovaná trieda File,
tam už je ten rozdiel v API dosť výrazný.

Navyše, citujem:

Prior to the Java SE 7 release, the java.io.File class was the mechanism used for file I/O, but it had several drawbacks.

Many methods didn't throw exceptions when they failed, so it was impossible to obtain a useful error message. For example, if a file deletion failed, the program would receive a "delete fail" but wouldn't know if it was because the file didn't exist, the user didn't have permissions, or there was some other problem.
The rename method didn't work consistently across platforms.
There was no real support for symbolic links.
More support for metadata was desired, such as file permissions, file owner, and other security attributes.
Accessing file metadata was inefficient.
Many of the File methods didn't scale. Requesting a large directory listing over a server could result in a hang. Large directories could also cause memory resource problems, resulting in a denial of service.
It was not possible to write reliable code that could recursively walk a file tree and respond appropriately if there were circular symbolic links.
Editováno 11.2.2014 17:25
Nahoru Odpovědět 11.2.2014 17:22
1 + 1 = 2
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Benjibs
David Čápka:

Files nedělá nic jiného, než že používá ty třídy, které tu já popisuji. Není to ani žádná abstrakce, jak jsi viděl, tak s nimi stejně musíš umět zacházet. Proto je potřeba, aby se to lidé učili tak, jak je to tu ukázané, chápeš?

Do konverzace jsem vstoupil proto, že to z tvého "lepší a modernější" vypadalo, jako by se tu učilo něco starého a nepotřebného. Ale tomu tak není.

Nahoru Odpovědět 11.2.2014 17:26
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Benjibs
Člen
Avatar
Odpovídá na David Čápka
Benjibs:

Máš pravdu, z tej strany som sa na to nepozeral.

Nie je na škodu poznať tebou popísané veci, avšak kedže tam nie je žiadna zmienka o NIO, väčšina čitateľov by si mohla myslieť, že nič podobné neexistuje, a preto to kvôli tomu nepoužívať.

Nahoru Odpovědět 11.2.2014 17:45
1 + 1 = 2
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Benjibs
David Čápka:

To je fakt. Nechceš o tom napsat nějaký článeček? :)

Nahoru Odpovědět 11.2.2014 17:57
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Benjibs
Člen
Avatar
Odpovídá na David Čápka
Benjibs:

Niekedy cez víkend by som mohol skúsit čosi zosmolit :`

Nahoru Odpovědět 11.2.2014 18:02
1 + 1 = 2
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 20 zpráv z 20.