NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Schválně jestli zvládne někdo tuto úlohu

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Granny's Tuna:9.10.2015 16:28

Dobrý den kolegové, mám pro vás úlohu, kterou jsem již vyřešil ale zajímalo by mě, jaké řešení použijete vy. Poprosil bych o komentovaný kód, abych přesně (jsem začátečník) věděl co se kde dělá. Pokud možno řešení provést bez vláken. Zde už je sama úloha.

>Vytvořte jednoduchou java aplikaci, která převezme z příkazového řádku dva argumenty - první argument představuje název zdrojového souboru a druhý název cílového souboru. Aplikace se pokusí zdrojový soubor otevřít, pokud pokus selže, aplikace vypíše příslušnou chybovou zprávu do konzole a skončí. Dále se aplikace pokusí vytvořit cílový soubor, selhání pokusu je opět doprovázeno chybovým výpisem a ukončením aplikace.

Pokud se podaří otevřít zdrojový i vytvořit cílový soubor, aplikace přečte ze zdrojového souboru 1000 bytů a zapíše je do cílového souboru. Jestliže zdrojový soubor neobsahuje tolik bytů, bude zkopírován celý soubor a aplikace o tom do konzole vypíše zprávu. Pokud během čtení souboru dojde k chybě (bude vyvolána výjimka), aplikace zapíše chybovou zprávu do konzole a skončí. Totéž platí pro výjimku při zápisu do souboru. Pokud se povede zkopírovat obsah bez chyb, aplikace vypíše závěrečnou zprávu o úspěšném provedení akce a skončí.

Bez ohledu na úspěšnost předchozích operací aplikace uzavře oba soubory (ještě před svým ukončením).

Všechny možné chybové stavy ošetřete pomocí výjimek. Každá taková situace bude mít svou vlastní chybovou zprávu (Soubor nelze otevřít, Soubor nelze vytvořit, Ze souboru nelze číst, Soubor nelze zavřít, ale i Program požaduje dva argumenty apod.) vypsanou do chybové konzole. Do konzole se nebude vypisovat tzv. stacktrace (zásobník vnořených volání metod).

Tipy:

java.io.FileIn­putStream
java.io.FileNot­FoundException
java.io.FileOu­tputStream
java.io.IOException

System.err.prin­tln()
System.out.prin­tln()

Bonus: V případě existence cílového souboru se uživatele aplikace zeptá, jestli si opravdu přeje soubor přepsat, při záporné odpovědi svou činnost přeruší a původní cílový soubor ponechá beze změny.<

Odpovědět
9.10.2015 16:28
One of my most productive days was throwing away 1000 lines of code. ~ Gordon Bell
Avatar
Odpovídá na Granny's Tuna
Michal Žůrek - misaz:9.10.2015 16:35

A co je na tom složitého?

 
Nahoru Odpovědět
9.10.2015 16:35
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Granny's Tuna
Jan Vargovský:9.10.2015 16:38

Ukážeš nám taky svoje řešení? Nějak ti nevěřím a nemyslím si, ze by ti tu někdo dělal úkol.

 
Nahoru Odpovědět
9.10.2015 16:38
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Granny's Tuna
Petr Čech:9.10.2015 16:55

To je tak primitivní, že ti nevěřím, žes to vyřešil, ale chceš, abychom za tebe udělali úkol (prostě viz Jan Vargovský ). Oni totiž programátoři nejsou blbí ;-)
Nejpodivnější je to přesné zadání se specifiky, která odpovídají domácímu úkolu... proč bychom měli dělat třeba bonus :P
Nejvíc smrdí ta žádost o okomentovaný kód :D

Nahoru Odpovědět
9.10.2015 16:55
the cake is a lie
Avatar
Milan Křepelka
Tvůrce
Avatar
Milan Křepelka:9.10.2015 18:32

Tak už nám zase začíná školní rok :-D

 
Nahoru Odpovědět
9.10.2015 18:32
Avatar
Michal Žůrek - misaz:9.10.2015 19:11

Jakou školu studuješ?

 
Nahoru Odpovědět
9.10.2015 19:11
Avatar
Odpovídá na Michal Žůrek - misaz
Granny's Tuna:9.10.2015 19:44

Prazske gymnazium se zamerenim na programovani. Vyucuji tu i nejaci profesori z CVUT.

Nahoru Odpovědět
9.10.2015 19:44
One of my most productive days was throwing away 1000 lines of code. ~ Gordon Bell
Avatar
Odpovídá na Jan Vargovský
Granny's Tuna:9.10.2015 19:44

no a k tomu reseni...pro me je spis problem co ten ucitel chce...a jo je to za ucelem splneni ukolu, i kdyz je ten ukol dobrovolnej :D takze to nikdo nemusi delat. Kazdopadne ja v Jave udelal rocnikovku (jednoduchy obrazkovy editor), ale tady ja proste to zadani nechapu a na nej jsem nebyl ve skole.

Editováno 9.10.2015 19:47
Nahoru Odpovědět
9.10.2015 19:44
One of my most productive days was throwing away 1000 lines of code. ~ Gordon Bell
Avatar
Snipo
Člen
Avatar
Snipo:9.10.2015 19:54

A čo presne na tom nechápeš? Z toho čo si tu napísal je predsa jednoznačné čo sa od teba žiada.

 
Nahoru Odpovědět
9.10.2015 19:54
Avatar
Granny's Tuna:9.10.2015 20:01

no pro tebe mozna :D ale ja se vyjimky neucil jeste...leda od Horouta z knihy, ale to jen okrajove. Takze vubec ani nwm co po me fraja chce.

Nahoru Odpovědět
9.10.2015 20:01
One of my most productive days was throwing away 1000 lines of code. ~ Gordon Bell
Avatar
Tomáš Brůna
Tvůrce
Avatar
Odpovídá na Granny's Tuna
Tomáš Brůna:9.10.2015 20:11

tak si projdi zdejší tutoriály v sekci "práce se soubory" o nich takdy něco je ;)

Nahoru Odpovědět
9.10.2015 20:11
Vi veri universum vivus vici
Avatar
Hit
Člen
Avatar
Odpovídá na Granny's Tuna
Hit:9.10.2015 20:13

Se podívej na tutoriály tady na webu, výjimky jsou tam popsány Jinak nechápu proč jsi rovnou neřekl, že tomu nerozumíš, namísto toho, aby jsi tu z lidí dělal blbce.

Nahoru Odpovědět
9.10.2015 20:13
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
Odpovídá na Hit
Granny's Tuna:9.10.2015 20:24

to neni mysleno delat blbce. Ale je lepsi nerdum rict, ze mas pro ne hadanku ( to je prijme k tomu aby je to bavilo) nez abych jim rikal "Tady je ukol, vyreste mi ho" :D - jinak nerdy myslim vas (ja jsem geek). Anyway se omlouvam a kdybyste mel nekdo zajem to vyresit, tak budu jen rad, i kdyz spis misto odevzdavani toho ukolu mi jde hlavne o to, abych to poradne pochopil. Jelikoz i kdybych to jentak odevzdal, tak si ve skole ten kod musim obhajit, takze by mi to bylo celkem na nic.

Nahoru Odpovědět
9.10.2015 20:24
One of my most productive days was throwing away 1000 lines of code. ~ Gordon Bell
Avatar
Odpovídá na Granny's Tuna
Ondřej Krsička:9.10.2015 21:08

Vypliva z toho, ze bud:

  1. Nevis, co je to nerd

https://cs.m.wikipedia.org/wiki/Nerd

  1. Arogantne si myslis, že (skoro) každý programátor je nerd.
 
Nahoru Odpovědět
9.10.2015 21:08
Avatar
Odpovídá na Granny's Tuna
Michal Haňáček:9.10.2015 21:18

Tak nějak úměrně počtu tvých příspěvků se mi vybavuje to přísloví "mluviti stříbro mlčeti zlato" ... k tématu, kdyby jsi namísto pohádek věnoval čas přečtení např. této sekce " http://www.itnetwork.cz/java/soubory ", nebo položil jasnou otázku na část problému/ zadání které nerozumíš už jsi mohl mít řešení napsané ...

Editováno 9.10.2015 21:19
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
9.10.2015 21:18
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Granny's Tuna
Petr Čech:9.10.2015 22:05

Takže ty se nám tady vysmíváš do očí (resp. monitoru) a chceš, aby ta tebe někdo vyřešil naprosto primitivní problém, který se dá za pár minut vygooglit. Navíc si naivně myslíš, že proto, že u vás učí někdo z ČVUT znamená, že lidé z vaší školy jsou automaticky součástí intelektuální elity, ačkoliv nedokážeš pochopit zadání úkolu v Češtině a to velmi podrobně popsaný- tak to jsi opravdu vedle, protože to nemusí znamenat vůbec nic. Pokud bychom přijali fakt, že programátor je automaticky nerd, tak mu můžeš jako stroji něco s výsměchem předhodit, ať to za tebe vyřeší a ještě jako argument přidáš, že jsi napsal jakousi ročníkovou práci, ačkoliv neumíš použít Google. Opravdu bych chtěl ten editor vidět... :D Něco podobného jsem asi udělal za odpoledne :D
PS: já třeba jsem nerd, ale věřím tomu, že spoustu programátorů nejsou.
Snesu toho hodně, ale

Ale je lepsi nerdum rict, ze mas pro ne hadanku ( to je prijme k tomu aby je to bavilo) nez abych jim rikal "Tady je ukol, vyreste mi ho" :D - jinak nerdy myslim vas (ja jsem geek).

mě opravdu vytočilo, urazilo a došel jsem k názoru, že potřebuješ srazit hřebínek.

Nahoru Odpovědět
9.10.2015 22:05
the cake is a lie
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Ondřej Krsička
Petr Čech:9.10.2015 22:06

Nevím, proč by tu měl někdo plivat

Nahoru Odpovědět
9.10.2015 22:06
the cake is a lie
Avatar
Neaktivní uživatel:9.10.2015 22:29

Strašně se mi líbí obranná reakce těchto rádoby programátoru, když se přijde(v tomhle případě se sám bonznul) na to že lžou. :D

Editováno 9.10.2015 22:32
Nahoru Odpovědět
9.10.2015 22:29
Neaktivní uživatelský účet
Avatar
Odpovídá na Petr Čech
Ondřej Krsička:9.10.2015 23:11

Vyplývá* :D ach ty vyjmenovaný slova co.

 
Nahoru Odpovědět
9.10.2015 23:11
Avatar
Hit
Člen
Avatar
Odpovídá na Granny's Tuna
Hit:9.10.2015 23:37

Možná bude nejlepší, když půjdeš za tím "frájou" profesorem a řekneš mu, že tomu nerozumíš, a když je to takovej nerd, tak ať ti pomůže.

Nahoru Odpovědět
9.10.2015 23:37
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
Richard Závodný:10.10.2015 0:29

Tímto způsobem jakým zde komunikuješ silně pochybuji o tom že ti někdo zde přítomných poradí. Příště začínej na rovinu a nedělej si z nás šoufky. Prvně použij Google potom až piš na Forum.

 
Nahoru Odpovědět
10.10.2015 0:29
Avatar
Odpovídá na Richard Závodný
Granny's Tuna:10.10.2015 9:01

tyjo nepovidej, ale co jsem mel sakra hledat kdyz jsem ani nepobral zadani.

Nahoru Odpovědět
10.10.2015 9:01
One of my most productive days was throwing away 1000 lines of code. ~ Gordon Bell
Avatar
Odpovídá na Neaktivní uživatel
Granny's Tuna:10.10.2015 9:01

Ja se nebonznul. Tomuto zpusobu jednani se rika cestne priznani. (na zaklade mensiho tlaku :-) )

Nahoru Odpovědět
10.10.2015 9:01
One of my most productive days was throwing away 1000 lines of code. ~ Gordon Bell
Avatar
Odpovídá na Petr Čech
Granny's Tuna:10.10.2015 9:09

Sorry, jestli se te to nejak dotklo, ale zhruba 80% programatoru ci pouhych "ajtaku" nerdi/geekove jsou. Vetsinou programatori spis nerdi, jelikoz byvaji hodne uzavreni a tak. Jinak k ty elite : Nas gympl je asi treti nejprestiznejsi v praze a asi trinacty v republice. Navic jsme jeden asi z maximalne peti gymplu, ktery jsou vseobecny a ktomu maji jeste vetve (2 tridy humanitni, 2 prirodovedne a 1 elitni programatorskou (tlacmeni). Ja osobne se nerad jako programator nazyvam, jelikoz mi pripada, ze jeste nic krome HTML, JS, jQuerry, CSS3, .NET nic neumim. Jak si muzes vsimnout, tak uz ani neuvadim ty zaklady JAVY, co jsem se jeden rok ucil. Jakoze pamatuju si tam neco, ale to vsechno je nauceny samoukou a ne od toho profesora. Takze sorry kdyz jeste jednou ;-)

Nahoru Odpovědět
10.10.2015 9:09
One of my most productive days was throwing away 1000 lines of code. ~ Gordon Bell
Avatar
Milan Křepelka
Tvůrce
Avatar
Milan Křepelka:10.10.2015 9:10

Vy jste nerdi a já jsem geek. Opravdu si mě rozesmál. Děkuji. Řekněme to takhle. Začal jsi velmi nešťastně. Nauč se alespoň základní problematiku a pak přijď s konkrétní otázkou.

Anebo si vyber nějakou poradnu, kde tě nepošlou do háje ...ale budeš to mít těžký. Období domacích úkolů je profláknutý.

 
Nahoru Odpovědět
10.10.2015 9:10
Avatar
Odpovídá na Granny's Tuna
Michal Haňáček:10.10.2015 9:10

Co** konkrétně** jsi ze zadání nepochopil?

Nahoru Odpovědět
10.10.2015 9:10
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Odpovídá na Hit
Granny's Tuna:10.10.2015 9:12

to delame casto, jenze on je ve skole jen kazdej patek, protoze jeste prednasi jinde a navic jsem nemocnej, takze jsem nebyl ani na zadani. To je taky duvod, proc ho nechapu :-D

Nahoru Odpovědět
10.10.2015 9:12
One of my most productive days was throwing away 1000 lines of code. ~ Gordon Bell
Avatar
Odpovídá na Michal Haňáček
Granny's Tuna:10.10.2015 9:15

Jinak tobe podekuju za tu stranku. Ja ani nevedel co presne mam hledat. BTW nenasel by se nekdo, kdo by mi vysvetlit co po me ten profesor vubec chce? Ja tam vidim nejaky ze vezme soubor, zkopiruje ho pokud bude mit vic nez 1MB tak jen tu cast, pokud min tak celej. Pokud se to nepovede, tak vyplyne chybova zprava. A dal?

Nahoru Odpovědět
10.10.2015 9:15
One of my most productive days was throwing away 1000 lines of code. ~ Gordon Bell
Avatar
Odpovídá na Granny's Tuna
Michal Haňáček:10.10.2015 9:39

Ale vždyť to zadání je dost konkrétně popsané, přemýšlel jsem jak ti obecně poradit, ale vždycky jsem došel k tomu že bych více, nebo méně opisoval zadání. Já se ti klidně pokusím poradit, ale na dotaz "nechápu tohle detailně popsaný zadání" prostě není co radit ... s konkrétním dotazem na konkrétní problém se na mě klidně můžeš obrátit.

Nahoru Odpovědět
10.10.2015 9:39
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Granny's Tuna
David Novák:10.10.2015 13:39

:D :D :D díky za zasmání..

"elitní gympl" :D :D

no pokud je tvůj gympl opravdu elitní, tak pak sorry, ale nemáš tam co dělat.. pravda je spíše ale taková, že na něm vůbec nic elitního není.. jsi prostě jen namyšlený gymplán (takových je víc než dost), co zároveň nedokáže pochopit naprosto triviální zadání (tak jednoduché věci se na vysoké ani neukazují, natož aby to byl nějaký úkol.. :D a FYI na vysokých se začíná vše od 0, protože se počítá s gymplány, co nic neumí)..

úkolem v zásadě je, otevřít jeden soubor a překopírovat 1KB (ne MB!!! řády bys snad mohl umět.. to se učí na základce) dat z něj do druhého. Pokud je zdrojový soubor menší, tak překopíruješ, co tam je a vypíšeš, že je menší.. Plus všechny operace ošetřit.

Toť vše. Programátor začátečník to má za hodinu. Zkušený programátor za řekl bych 10-15 minut..

Doporučuji o hodně víc pokory a začít se pořádně učit nebo změnit školu, "elito" (nebo spíš jelito)..

Nahoru Odpovědět
10.10.2015 13:39
Chyba je mezi klávesnicí a židlí.
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Granny's Tuna
Petr Čech:10.10.2015 16:00

To, na jaké jsi škole je úplně jedno, můj gympl je asi nejlepší v kraji a (žádné asi) 10. nejlepší v ČR. Máme tam lidi, co jen tak proplouvají, ale i oni mají zdravější sebevědomí než ty, protože ta škola je tak moc hardcore, že hned tak někdo neprojde. Tohle bude znít asi namyšleně, ale jsem nejlepší minimálně z ročníku v Matematice a Fyzice, informatika probíhá tak, že mi učitel čumí přes rameno a sleduje, co tam dělám od doby, co mě spatřil s otevřeným příkazovým řádkem, občas si zapropaguje svůj Pascal a já se mu upřímně vysměju, že v oblasti IT zamrzl před 15 lety. Lidé, co nedokáží pochopit tak primitivní zadání, jako jsi nám předložil u nás odchází s depkou v pololetí prváku. Na hodinách Angličtiny se vysmíváme tomu, jak je maturita primitivní, aby prošli i takoví elitáři jako ty (Angličtinu pokládám za jeden ze základů programování, proto ji uvádím). A i přesto se nepovažuji za inteligenční elitu. Vše co umím jsem se naučil sám, a na rozdíl od tebe to umím, a když ne, vyhledám si to. Co znamená, že umíš .NET? :D to není programovací jazyk, ale framework, který bez vhodného jazyku znát nemůžeš, leda tak z učebnice, ale to je k ničemu.
To s tou urážkou jsem myslel tak, že si nepotrpím na formalitách, jaké používá normální lid, ale blbce ze mě nikdo dělat nebude, a pokud ano, tak mi nedělá problém zničit, pošlapat a vyvrátit jejich mínění bez ohledu na to, kdo jsou, bez problému to dělám i učitelům.

Nahoru Odpovědět
10.10.2015 16:00
the cake is a lie
Avatar
Tomáš Brůna
Tvůrce
Avatar
Odpovídá na Granny's Tuna
Tomáš Brůna:10.10.2015 22:50

snaž se, jsi na "elitním gymplu" a číst umíš :). zkusil jsem to a s pomocí kamaráda kterej mi vysvětlil jak se zapisujou a čtou byty do souboru jsem to nějak spachtil i já ;)

Nahoru Odpovědět
10.10.2015 22:50
Vi veri universum vivus vici
Avatar
Odpovídá na Petr Čech
Granny's Tuna:11.10.2015 0:10

K anglictine...mam CAE bez toho aniz bych chodil na british council, ale jelikoz hraju hodne online hry, tak se bavim s lidma z celyho sveta. Jo tahle skola je taky hodne tezka a vetsinou na konci ty programatorsky tridy je vetsinou kolem 15 lidi. Takze selekce je velmi vysoka. K tomu .NET, tak ja delam (nebo se spis ucim) C# 3.0 na platforme .NET 3.5. I kdyz C# jsem uz delal a nevidim moc velky rozdil s JAVA a oba jazyky jsou objektove orientovane programovaci jazyky. Je pravda, ze ja jsem dost slabej v JAVA, ale treba web stranky, anebo sprava serveru popr. hernich servery jsem delal jeste pred gymplem. Takze jsem mezi temi, kteri v tom trochu "plavaj" a samozrejme mame lidi treba jako kamos, kterej programovani dela od 6 leti a ten ti klidne napise obdobnou verzi GIMPU anebo tam jsou lide, kteri treba udelaj program na vycisleni chem. rovnic v JAVA + JAVAFX, pak je jeste frajer, co napsal vlastni OS, coz se mi fakt hodne libilo anebo treba i "Clovece nezlob se" s tim, ze mas ruzne strategie a klidne BOTi muzou hrat jen spolu a ty to sledujes. Jako jsou tam takovyhle lidi, ale tech je tak 6 z 29. Zbytek jsou tam spis jako ja Kvuli matematice a fyzice. BTW na jakej chodis gympl anebo v jakym je to kraji?

Jinak sefredaktore Davide...diky, ale kamos mi uz vysvetlit, co se po me chce. Soubory jsem si tedka precetl od Horouta a zitra sem hodim reseni, jestli se mi to nejak povede zpatlat. Kdyztak bych to napsal v C# a dal to tomu uciteli, s tim ze to v JAVA neumim.
Dobrou noc panove.

Nahoru Odpovědět
11.10.2015 0:10
One of my most productive days was throwing away 1000 lines of code. ~ Gordon Bell
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Granny's Tuna
Jan Vargovský:13.10.2015 17:51

Jestli to umíš v C#, tak to v Jave není problém, ne? Idea je stejná, syntaxe jiná, ale tu si snad dohledáš.

 
Nahoru Odpovědět
13.10.2015 17:51
Avatar
Ondřej Langr (andysekcze):13.10.2015 18:13

C# 3.0? Není už náhodou C# 6?

Nahoru Odpovědět
13.10.2015 18:13
I have a charger. I have Note 7. Umh I haven't Note7.
Avatar
Hit
Člen
Avatar
Odpovídá na Granny's Tuna
Hit:13.10.2015 19:23

Tak já nevím, jednou řekneš, že nevíš co jsou to výjimky, po druhý zase, že vlastně v C# bys to naprogramovat zvládnul (přitom syntaxe je skoro totožná).... Jinak je to tuším Herout(Pavel) a ne Horout :-D

Nahoru Odpovědět
13.10.2015 19:23
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
Odpovídá na Hit
Granny's Tuna:13.10.2015 21:37

Takhle vyjimky uz jsem se doucil a zjistil, ze je to hoodne podobny jako v C#, ale presto porad nevim jak pracovat a kopirovat data souboru...proto by bylo pro me nejlepsi ten kod videt a pochopil uz bych to potom z neho. Stejne ta lhuta odevzdani uz vyprsela, takze bych z toho zadny body nemel, ale jako porad me zajima jak je to teda spravne

Nahoru Odpovědět
13.10.2015 21:37
One of my most productive days was throwing away 1000 lines of code. ~ Gordon Bell
Avatar
Odpovídá na Petr Čech
Granny's Tuna:13.10.2015 21:44

myslis, ze by se tohle dalo brat jako reseni? ja to nedelal a uz stejne se to neda poslat, jelikoz lhuta skoncila.

import java.io.*;

/**
 *  Makes a copy of a file.  The original file and the name of the
 *  copy must be given as command-line arguments.  In addition, the
 *  first command-line argument can be "-f"; if present, the program
 *  will overwrite an existing file; if not, the program will report
 *  an error and end if the output file already exists.  The number
 *  of bytes that are copied is reported.
 */
public class CopyFile {

   public static void main(String[] args) {

      String sourceName;   // Name of the source file,
                           //    as specified on the command line.
      String copyName;     // Name of the copy,
                           //    as specified on the command line.
      InputStream source;  // Stream for reading from the source file.
      OutputStream copy;   // Stream for writing the copy.
      boolean force;  // This is set to true if the "-f" option
                      //    is specified on the command line.
      int byteCount;  // Number of bytes copied from the source file.

      /* Get file names from the command line and check for the
         presence of the -f option.  If the command line is not one
         of the two possible legal forms, print an error message and
         end this program. */

      if (args.length == 3 && args[0].equalsIgnoreCase("-f")) {
         sourceName = args[1];
         copyName = args[2];
         force = true;
      }
      else if (args.length == 2) {
         sourceName = args[0];
         copyName = args[1];
         force = false;
      }
      else {
         System.out.println(
                 "Usage:  java CopyFile <source-file> <copy-name>");
         System.out.println(
                 "    or  java CopyFile -f <source-file> <copy-name>");
         return;
      }

      /* Create the input stream.  If an error occurs, end the program. */

      try {
         source = new FileInputStream(sourceName);
      }
      catch (FileNotFoundException e) {
         System.out.println("Can't find file \"" + sourceName + "\".");
         return;
      }

      /* If the output file already exists and the -f option was not
         specified, print an error message and end the program. */

      File file = new File(copyName);
      if (file.exists() && force == false) {
          System.out.println(
               "Output file exists.  Use the -f option to replace it.");
          return;
      }

      /* Create the output stream.  If an error occurs, end the program. */

      try {
         copy = new FileOutputStream(copyName);
      }
      catch (IOException e) {
         System.out.println("Can't open output file \"" + copyName + "\".");
         return;
      }

      /* Copy one byte at a time from the input stream to the output
         stream, ending when the read() method returns -1 (which is
         the signal that the end of the stream has been reached).  If any
         error occurs, print an error message.  Also print a message if
         the file has been copied successfully.  */

      byteCount = 0;

      try {
         while (true) {
            int data = source.read();
            if (data < 0)
               break;
            copy.write(data);
            byteCount++;
         }
         source.close();
         copy.close();
         System.out.println("Successfully copied " + byteCount + " bytes.");
      }
      catch (Exception e) {
         System.out.println("Error occurred while copying.  "
                                   + byteCount + " bytes copied.");
         System.out.println("Error: " + e);
      }

   }  // end main()


} // end class CopyFile
Editováno 13.10.2015 21:46
Nahoru Odpovědět
13.10.2015 21:44
One of my most productive days was throwing away 1000 lines of code. ~ Gordon Bell
Avatar
Odpovídá na Granny's Tuna
Michal Žůrek - misaz:16.11.2015 19:56

jo jde vidět, jsi to nedělal ty.

 
Nahoru Odpovědět
16.11.2015 19:56
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 40 zpráv z 40.