Java tutorial. Be- es kimenet kezelese. A legelsoprogram. Hogyan hasznaljunk fajlokat? Bemenet es kimenet absztrakciüja

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Java tutorial. Be- es kimenet kezelese. A legelsoprogram. Hogyan hasznaljunk fajlokat? Bemenet es kimenet absztrakciüja"

Átírás

1 Be- es kimenet kezelese A legelsoprogram Ü U dví zloszí veg kiıra sa a kepernyore public static void main( String args[] ){ System.out.println("Hello World!"); Hogyan hasznaljunk fajlokat? Ü Trivialis megoldas: a szabvanyos bemenet/kimenet a tira nyıta sa val Ü Az operaciüs rendszer szolgaltatasa Ü Az udví zloszí veget ki akarjuk ırni a hello.txt nev fajlba: java Hello >hello.txt Ha egy programban tí bb fajl van Ü Akkor a programon belulrol is kellene tudni hasznalni oket Ü Van egy specialis kí nyvtar erre a celra: a java.io csomag Ü Nem csak fajlok kezelese, hanem altalaban bemenet es kimenet Bemenet es kimenet absztrakciüja Ü Bemenet: konzol, fajl, halüzati kapcsolat, adatbazis egy rekordja, stb. adatokat lehet egymas utan olvasni rüla Ü Kimenet: kepernyo, fajl, nyomtatü, halüzati kapcsolat, adatbazis egy rekordja, stb. adatokat lehet egymas utan kiırni ra Ü Szekvencialis input/output fajl Ü Csatorna (Stream) Ü Csatornaobjektumok 1

2 Mire kell ez? Ü Ugyanazokat a m veleteket lehet hasznalni Ü Egy jül megszervezett kí nyvtar: java.io Ü Celok: Ö egyszer seg Ö rugalmassag Ö kifejezoero Ismet az a legelsoprogram Ü U dví zloszí veg kiıra sa a kepernyore Ugyanaz fajlba: Ü U dví zloszí veg kiıra sa egy fajlba public static void main( String args[] ){ System.out.println("Hello World!"); public static void main( String args[] ){ System.out.println("Hello World!"); Ugyanaz fajlba: Ü U dví zloszí veg kiıra sa egy fajlba Ugyanaz fajlba: Ü U dví zloszí veg kiıra sa egy fajlba public static void main( String args[] ){ FileWriter fw = new FileWriter("a.txt"); System.out.println("Hello World!"); public static void main( String args[] ){ FileWriter fw = new FileWriter("a.txt"); PrintWriter pw = new PrintWriter(fw); System.out.println("Hello World!"); 2

3 Ugyanaz fajlba: Ü U dví zloszí veg kiıra sa egy fajlba Ugyanaz fajlba: Ü U dví zloszí veg kiıra sa egy fajlba public static void main( String args[] ){ FileWriter fw = new FileWriter("a.txt"); PrintWriter pw = new PrintWriter(fw); System.out.println("Hello World!"); public static void main( String args[] ){ FileWriter fw = new FileWriter("a.txt"); PrintWriter pw = new PrintWriter(fw); pw.println("hello World!"); Ugyanaz fajlba: Ü U dví zloszí veg kiıra sa egy fajlba public static void main( String args[] ){ FileWriter fw = new FileWriter("a.txt"); PrintWriter pw = new PrintWriter(fw); pw.println("hello World!"); pw.close(); Ugyanaz fajlba: Ü U dví zloszí veg kiıra sa egy fajlba import java.io.*; public static void main( String args[] ){ FileWriter fw = new FileWriter("a.txt"); PrintWriter pw = new PrintWriter(fw); pw.println("hello World!"); pw.close(); Ugyanaz fajlba: Ü U dví zloszí veg kiıra sa egy fajlba import java.io.*; public static void main( String args[] ) FileWriter fw = new FileWriter("a.txt"); PrintWriter pw = new PrintWriter(fw); pw.println("hello World!"); pw.close(); 3

4 Ugyanaz fajlba: Ü U dví zloszí veg kiıra sa egy fajlba import java.io.*; public static void main( String args[] ) FileWriter fw = new FileWriter("a.txt"); PrintWriter pw = new PrintWriter(fw); pw.println("hello World!"); pw.close(); Ugyanaz fajlba: Ü U dví zloszí veg kiıra sa egy fajlba import java.io.*; public static void main( String args[] ) FileWriter fw = new FileWriter("a.txt"); PrintWriter pw = new PrintWriter(fw); pw.println("hello World!"); pw.close(); System.out Ü Ez egy predefinit csatorna Ü Szabvanyos kimenet Ü PrintStream Ö van neki println() m velete Ö olyasmi, mint a PrintWriter Ü Van meg System.in es System.err is System.out.println("Hello"); A java.io csomag tartalma Ü Sok pici osztaly Ü Mindegyik egy kis funkcionalitast valüsıt meg Ü Kí nnyen komponalhatük Ü Van nehany nagyon fontos osztaly, a tí bbi mar haladüknak valü... :-) Az osztalyok rendszerezese Ü Kulí nbí zoszempontok szerint csoportosıthatjuk az osztalyokat Ü Szimmetria Ü Az osztalyok neve sokat elarul Ö A nevek nevkomponensekbol epulnek fel, amelyek segıtik az osztaly hovatartozasanak megallapıtasat Ü Az osztalyok hierarchiaja is kí veti a logikai tagola st 4

5 Az osztalyok csoportosıtasa Ü Harom szempont szerint lehet 1. ira ny Ü bemenet Ü kimenet 2. funkciü Ü tarolas müdjanak specifikalasa Ü extra funkcionalitas hozzaadasa 3. szervezes Ü bajt Ü karakter 1. A csatornak iranya Ü Lehet bemeneti es kimeneti Ü Bemeneti: amirol olvasni lehet InputStream, Reader Ü Kimeneti: amire ırni lehet OutputStream, Writer Ü Szimmetria: pelda ul FileInputStream, FileReader, FileOutputStream, FileWriter 2. A csatornaosztalyok funkciüja 2a. A ta rola s müdja nak specifika la sa Ö hol vannak az adatok Ö pl. FileWriter (fajlban) 2b. Extra funkcionalitas hozzaadasa Ö hogyan szeretnenk piszkalni az adatokat Ö pl. PrintWriter (println() metüdussal) 2a. A ta rola s müdja nak specifika la sa Ü Honnan olvassuk az adatokat, vagy hova ırjuk azokat Ü FileReader, CharArrayReader, StringReader, PipedReader Ü C-ben: scanf, fscanf, sscanf Ü Szabvanyos m veletek minimalis funkcionalitast biztosıtanak 2b. Extra funkcionalitas hozzaadasa Ü Bonyolultabb m veletek kulí n osztalyban Ü O nmagukban egyszer ek Ü Komponalhatük Ü Szu rok Ü Peldaul a PrintWriter, BufferedReader, stb. 5

6 3. Az adatok szervezese Ü Ba jtszervezes Ö A kulí nbí zokarakterküdolasi szabvanyok figyelmen kıvul hagyasa Ö Input- vagy OutputStream Ü Karakterszervezes Ö A kulí nbí zokarakterküdolasi szabvanyokbül szarmazü elteresek kezelese Ö Reader vagy Writer 3. Az adatok szervezese Ü A karakterküdolasi szabvanyok: Ö ASCII (7 bit) Ö extended ASCII, EBCDIC, ISO Latin-1, ISO Latin-2, Windows Latin-*, Mac, IBM, stb. (1 bajt) Ö Java: Unicode (2 bajt) Ü Hordozhatüsag, i18n, elosztott alkalmazasok: a szabvanyok explicit kezelese Ü Java 1.1-tol Ü Sok regi osztaly/m velet elavult (deprecated) Karakterszervezes csatornak Ü Javaban a karakterek (char, String) ket ba jtosak Ü Az operaciüs rendszerek es a nem Java alkalmazasok tí bbsegeben csak egy bajtosak (pl. szí vegfajlok) Ü Hogyan lehet a lekepezest megadni a ketto kí zí tt? Ö Karakterküdolasi szabvanyok Csatornaoszta lyok Ü A csatornaosztalyok hierarchiaja es elnevezese kí veti a rendszert Ü Kí nnyen kitalalhatü, hogy melyik osztaly mire valü Ü Negy bazisosztaly, es a tí bbi ezeknek a lesza rmazottja A negy bazisosztaly Ü InputStream Ö bemeneti ba jtcsatorna Ü OutputStream Ö kimeneti bajtcsatorna Ü Reader Ö bemeneti karaktercsatorna Ü Writer Ö kimeneti karaktercsatorna 6

7 Lesza rmazottak Ü A nev tukrí zi, hogy melyikbol Ü Szimmetria Ü FileInputStream, FileOutputStream, FileReader, FileWriter Ü BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter Ü ByteArrayInputStream, ByteArrayOutputStream, CharArrayReader, CharArrayWriter Alapfunkcionalita s Ü A negy bazisosztalyban van specifikalva Ü Ez a negy osztaly absztrakt Ü A leszarmazottak valüsıtjak meg a funkcionalita st Ü Pl. a FileInputStream egy olyan InputStream, ami az alap csatornafunkcionalitast fajlokon valüsıtja meg Bemeneti csatornak Ü Csatorna megnyitasa Ü Csatorna leza ra sa Ü Olvasas a csatornarül Ü Csatornan talalhatü adatok mennyisegenek lekerdezese Ü Kí nyvjelzomechanizmus Kimeneti csatornak Ü Csatorna megnyitasa Ü Csatorna leza ra sa Ü Iras a csatornara Ü Buffer urıtese (flush-olas) Csatorna k megnyita sa Ü A megfeleloosztalyő csatorna objektum letrehoza sa val Ü Ezen az objektumon vegezhetok el a tovabbi csatornam veletek FileInputStream fin = new FileInputStream("a.txt"); InputStream fin = new FileInputStream("a.txt"); 7

8 Csatorna k beza ra sa Ü A close() m velet segıtsegevel Ü Ne felejtsuk el! Foleg kimenet csatornaknal fontos: magaban foglalja a bufferelt adatok tenyleges kiırasat (flush) is. fin.close(); Pelda import java.io.*; class IOProba { public static void main( String args[] ) InputStream fin = new FileInputStream("a.txt"); OutputStream fout = new FileOutputStream("b.txt"); /* itt most csinalhatnek valamit... */ fin.close(); fout.close(); Beolvasa s Ü read() m veletek segıtsegevel Ü Majdnem ugyanaz InputStream-ek es Reader-ek eseten Ü haromfajta read() m velet read()-ek: InputStream Ü Egy adat beolvasasa int read() throws IOException Ö egy bajtot beolvas; -1, ha vege Ü Egy tí mbnyi adat beolvasasa int read( byte[] b ) throws IOException Ö olvas b-be; visszaadja a beolvasott bajtok szamat Ü Egy resztí mbnyi adat beolvasasa int read( byte[] b, int off, int len ) throws IOException Ö off-tül len hosszan olvas read()-ek: Reader int read() throws IOException int read( char[] c ) throws IOException int read( char[] c, int off, int len ) throws IOException int read() throws IOException int read( byte[] b ) throws IOException int read( byte[] b, int off, int len ) throws IOException Ü Ugyanaz, csak byte[] helyett char[] 8

9 Kiıra s Ü write() m veletek segıtsegevel Ü Majdnem ugyanaz OutputStream-ek es Writer-ek eseten Ü Szimmetrikus a beolvasü read() m veletekkel Ü haromfajta alap write() m velet Ö plussz meg egy kis kiegeszıtes write()-ok: OutputStream Ü Egy adat kiırasa void write( int i ) throws IOException Ö az i-nek a legalsü bajtjat ırja ki int read() throws IOException Ü Egy tí mbnyi adat kiırasa void write( byte[] b ) throws IOException int read( byte[] b ) throws IOException Ü Egy resztí mbnyi adat kiırasa void write( byte[] b, int off, int len ) throws IOException int read( byte[] b, int off, int len ) throws IOException write()-ok: Writer void write( int i ) throws IOException void write( char[] c ) throws IOException void write( char[] c, int off, int len ) throws IOException write()-ok: Writer write()-ok: Writer void write( int i ) throws IOException Ö az i legalsü ket bajtjat ırja ki void write( char[] c ) throws IOException void write( char[] c, int off, int len ) throws IOException void write( int i ) throws IOException void write( char[] c ) throws IOException void write( char[] c, int off, int len ) throws IOException void write( String s ) throws IOException void write( String s, int off, int len ) throws IOException 9

10 Pelda: ma sola s static void masol ( InputStream in, OutputStream out ) int b; while( (b=in.read())!= -1 ) out.write(b); out.flush(); O sszerakva: import java.io.*; class cp { public static void main( String args[] ) InputStream fin = new FileInputStream(args[0]); OutputStream fout = new FileOutputStream(args[1]); masol(fin,fout); fin.close(); fout.close(); static void masol(...)... {... Feladat Ü Adott ket fajl, "a.txt" es "b.txt". Fesuljuk í ssze a ket fajl tartalmat a "c.txt" fajlba. Eloszí r egy bajt az "a.txt"-bol, aztan egy a "b.txt"-bol, aztan megint egy az "a.txt"-bol, stb. Ha valamelyik fajl vegeter, a masik fajl maradekat masoljuk a "c.txt" vegere. Visszaterve meg egy percre... static void masol ( InputStream in, OutputStream out ) int b; while( (b=in.read())!= -1 ) out.write(b); out.flush(); Ü Buffer urıtese: az adatok tenylegesen kiırüdjanak a fizikai adathordozüra Masolas tí mbbel static int BlokkMeret = 100; public static void masolblokkonkent ( InputStream in, OutputStream out ) byte[] b = new byte[blokkmeret]; int hossz; while( (hossz=in.read(b)) == BlokkMeret ) out.write(b); if( hossz!= -1 ) out.write(b,0,hossz); out.flush(); Ü egyszerre 100 bajtot masolunk at 10

11 Feladat Ü Az elozofeladatra adott megoldast müdosıtsd Ő gy, hogy az a.txt es a b.txt fajlokbül 10 bajtos blokkokat masoljon a c.txt fajlba! Veget ert es ures csatornak Ü Ket teljesen kulí nbí zodolog! Ü Veget ert: ha ures, es ures is marad. Ü U res: lehet, hogy meg nem ert veget, csak eppen nem erkezett meg meg az adat Ü Gondoljunk egy halüzati kapcsolatra Ö Pl. a szerver varja, hogy a kliens kuldjí n adatot Mi a kulí nbseg a beolvasü m veletek sza ma ra? Ü Ha veget ert egy csatorna, a beolvasas befejezodik, es a visszateresi ertek jelzi, hogy nincs tí bb adat. Ö elsoread: -1 a visszateresi ertek Ö masik ket read: a beolvasott adatok szamat adja vissza Ü Ha ures a csatorna, a beolvasü m velet blokkol dik, varja, hogy erkezzen adat. Ö a vegrehajtasi szal felfuggesztodik, nem fut tovabb Pelda k Ü Veget ert csatorna: az elozopeldakban a ciklusbül kileptunk, amikor vegetert a bemenet Ü Blokkolt beolvasas: a program var, amıg be nem ırunk egy sort. Ekkor a shell odateszi az adatokat a program szabvanyos bemenetere. public static void main( String args[] ) int i = System.in.read(); System.out.write(i); System.out.flush(); Kulí nbseg a write es a print kí zí tt public static void main( String args[] ) int i = System.in.read(); System.out.write(i); System.out.println(" " + i); Ü Kiırjuk a beolvasott bet t (bajtot) Ő gy, ahogy beolvastuk, majd utana a küdjat. Ü print: kinyomtatas szí veges formaban 11

12 Mi van meg a fajlokon kıvul? Ü Csatornak segıtsegevel nem csak fajlokbül lehet olvasni, es fajlokba ırni. Ü Memüria, halüzati kapcsolat, nyomtatü, stb. Ü Mindezekrol kicsit kesobb ejtunk majd szüt... Csatornak feladat szerinti csoportosıta sa Ü Alapfunkcionalita s megvalüsıta sa kulí nbí zoadathordozükon (pl. fa jlokon) Ü Extra funkcionalita ssal val ella ta s: szu rok Sz rok Kimeneti csatorna, pl. egy fajl Sz rok Sz rok Egy sz ron keresztul ırunk, ami extra funkcionalitast biztosıt (pl. buffereles) A sz rois egy csatorna, amit egy Ő jabb sz rovel lathatunk el. Komponalhatjuk a sz roket, hogy bonyolultabb viselkedest allıthassunk elo. (Pl. buffereles es print-eles egyszerre) 12

13 Sz rok Szühaszna lat Ü A sz roket mindig egy mar meglevo csatorna f le hozzuk letre. Ü A sz rocsatorna konstruktoranak parameterkent meg kell adni a sz rt csatornat FileWriter fw = new FileWriter("a.txt"); PrintWriter pw = new PrintWriter(fw); A sz ro(ke)t megkerulve is ırhatunk a kulsocsatornara, de ez elegge veszelyes. (Gondoljunk pl. arra, hogy a sz roa buffereles...) vagy ajanlott hozzaferes Masodik sz ro Elsosz ro Sz rt csatorna A legfontosabb sz rok Ü Buffereles Ü Adattıpus-ertekek beolvasasa es kiırasa Ü Szí veges forma ban tí rtenokiıra s ( nyomtatas ) Az elsopeldank volt: szí veges kiıra s fa jlba import java.io.*; public static void main( String args[] ) FileWriter fw = new FileWriter("a.txt"); PrintWriter pw = new PrintWriter(fw); pw.println("hello World!"); pw.close(); A FileWriter objektumnak nincs println mu velete! Az elsopeldank volt: szí veges kiıra s fa jlba import java.io.*; public static void main( String args[] ) FileWriter fw = new FileWriter("a.txt"); PrintWriter pw = new PrintWriter(fw); pw.println("hello World!"); pw.close(); A szu ro konstruktora nak a tadjuk fw-t! 13

14 Az elsopeldank volt: szí veges kiıra s fa jlba import java.io.*; public static void main( String args[] ) FileWriter fw = new FileWriter("a.txt"); PrintWriter pw = new PrintWriter(fw); pw.println(42*integer.parseint(args[0])); pw.close(); Egy PrintWriter szu rovel kinyomtathatunk sza mokat! Az elsopeldank volt: szí veges kiıra s fa jlba import java.io.*; public static void main( String args[] ) FileWriter fw = new FileWriter("a.txt"); PrintWriter pw = new PrintWriter(fw); pw.println(args.length > 0); pw.close(); Vagy logikai ertekeket, stb. Szí veges kiıra s Ü PrintStream es PrintWriter Ü Nevezetesek a System.out es System.err Ü Persze nem csak fajlok fí le hozhatjuk letre... Ü Kinyomtathatunk adattıpus-ertekeket is, es objektumokat is Ö a tostring() metüduson keresztul Ü print: sima kinyomtatas println: mint print, plussz soremeles System.out.print(42); System.out.print("42"); Bina ris kiıra s Ü DataOutputStream Ü Adattıpus-ertekek binaris kiırasa Ö Ha nem egyszer en bajtokat szeretnenk kiırni... Ö Pl. kiırhatjuk egyszerre mind a negy bajtot, ami egy float tıpuső ertekhez kell FileOutputStream fout = new FileOutputStream("a.dat"); DataOutputStream dout = new DataOutputStream(fout); dout.writefloat((float)12.0); Bina ris beolvasa s Ü DataInputStream Ü Ugyanaz visszafele is megy: beolvasunk negy bajtot, es rekonstrualjuk belole a float tıpuső erteket DataInputStream din = new DataInputStream( new FileInputStream("a.dat") ); float f = din.readfloat(); 14

15 Ü writeboolean Ü writebyte Ü writeshort Ü writechar Ü writeint Ü writelong Ü writefloat Ü writedouble Ü writeutf Lehetosegek Ü readboolean Ü readbyte Ü readshort Ü readchar Ü readint Ü readlong Ü readfloat Ü readdouble Ü readutf Mire jü ez? Ü Adatok tí mí r tarolasat teszi lehetove a bina ris forma tum Ü A DataOutputStream es a DataInputStream segıtsegevel egyszer en lehet adattıpusertekeket elmenteni es visszaolvasni Ü Platform-fuggetlen megoldas: a binaris formatumot a Java pontosan specifikalja (big-endian vs. little-endian problema) Feladat Ü A matrix osztalyt egeszıtsuk ki binaris elmentoes beolvasü m veletekkel. Ü Irjunk hozza tostring() metüdust is, hogy megkí nnyıtsuk a kepernyore valü kiırast. Ü Irjunk egy foprogramot, ami elment egy egysegma trixot. Ü Irjunk egy masik foprogramot, ami egy fajlbül beolvasott matrixhoz hozzaadja a csupa egyes matrixot, es visszaırja a fajlba. Kerdes Ü Melyik hany bajtot ır ki? á dout.writeint(12) á pout.print(12) Kulí nbseg a szí veges es a bina ris forma tum kí zí tt FileOutputStream fout = new FileOutputStream("okos.txt"); DataOutputStream dout = new DataOutputStream(fout); PrintStream pout = new PrintStream(fout); fout dout pout 15

16 Kulí nbseg a szí veges es a bina ris forma tum kí zí tt FileOutputStream fout = new FileOutputStream("okos.txt"); DataOutputStream dout = new DataOutputStream(fout); PrintStream pout = new PrintStream(fout); dout.writeint( ); dout.flush(); pout.print( ); pout.flush(); fout.write( ); fout.flush(); Ü A szamok tí bbsegenel tenyleg tí mí rebb a binaris forma... PrintStream inverze? Ü DataInputStream - DataOutputStream beolvasas - kiıras Ü??? - PrintStream/PrintWriter Ü Nincs olyan csatornaosztaly, aminek a segıtsegevel egyszer en lehetne szí veges formatumban elmentett adattıpus-ertekeket visszaolvasni Ü Megoldas: BufferedReader - mindjart... Ü Masik: StreamTokenizer (haladü...) Buffereles Ü BufferedInputStream, BufferedReader BufferedOutputStream, BufferedWriter Ü Ezek a csatornak bufferelnek Ü Jü esetben az oprendszer is bufferel... Feladat Ü Jatsszuk ki a bufferelest! Irjunk olyan programot, ami í sszevissza ır egy fajlba. InputStream bin = new BufferedInputStream( new FileInputStream("a.txt") ); Sz rok kompona la sa Ü A bufferelest gyakran hasznaljuk egyeb sz rovel egyutt, pl. Data*Stream FileInputStream fin = new FileInputStream(tavoli_fajl); BufferedInputStream bin = new BufferedInputStream(fin); DataInputStream din = new DataInputStream(bin); float sszeg = 0.0F; for( int i=0; i<100; i++ ) sszeg += din.readfloat(); 16

17 Meg egy fontos dolog... Ü BufferedReader Ü Sorok olvasa sa szí veges a llomanybül Ü A metüdus: String readline() throws IOException Ü Soremelesig olvas, a soremeles jelet nem adja vissza Ö Soremeles jel: \r \n \r\n Ü Csatorna vege eseten: null Pelda Interaktıv alfanumerikus program public static void main( String args[] ) BufferedReader r = new BufferedReader( new InputStreamReader(System.in)); System.out.println("Uss n be egy szamot: "); String s = r.readline(); int n = Integer.parseInt(s); System.out.println("A szam negyzete: " + n*n); Feladat Ü Irjunk olyan metüdust a matrix osztalyhoz, amelynek segıtsegevel szí veges formatumbül be lehet olvasni egy matrixot. A matrix elemei mind kulí n sorban legyenek! Ü Hasznalj BufferedReader osztalyt egy FileReader fí le hő zva! Kí zvetlen eleres fajlok Ü Sokan szeretnek pozıcionalni egy fajlban... Ü Ez nem megy a csatornaosztalyok eseten Ü RandomAccessFile Ü Meg lehet nyitni egy fajlt, es lehet olvasni ("r") vagy ırni/olvasni ("rw") Ü M veletek: mint DataInputStream es DataOutputStream, de egyutt Pelda Ü Minden ha romhatva nyadik sza mot inkrementa lunk. RandomAccessFile f = new RandomAccessFile("adatok.dat","rw"); int haromhatvany = 1; while( haromhatvany * 4 < f.length() ){ f.seek(haromhatvany * 4); int adat = f.readint(); f.seek(haromhatvany * 4); f.writeint(adat+1); haromhatvany *= 3; f.close(); 17

18 Feladat Ü Indexelt fajlkezeles Ü Az indexelt fajl 1024 hossző sagő, double ertekeket tartalmazü sorozatokat tartalmaz. Ü Az indexeleshez hasznaljunk lexikografikus rendezest. Mik vannak meg a fajlokon kıvul? Haladü kurzushoz Ü A feladat szerinti csoportosıtas szerint: honnan olvasunk, illetve hova ırunk Ü Lehetosegek a java.io csomagban Ö fajlok Ö csí vek Ö bajt- es karaktertí mbí k, sztringek Ö bajtcsatorna felett definialt karaktercsatornak Ö í sszef zí tt csatornak Mik vannak meg a fajlokon kıvul? Ü A feladat szerinti csoportosıtas szerint: honnan olvasunk, illetve hova ırunk Ü Lehetosegek a java.io csomagban Ö fajlok Ö csí vek Ö bajt- es karaktertí mbí k, sztringek Ö bajtcsatorna felett definialt karaktercsatornak Ö í sszef zí tt csatornak Csí vek Ü Egy PipedInputStream-et es egy PipedOutputStream-et í sszekapcsolhatunk egyma ssal. Ü Amit a pout-ra ırunk, megjelenik az pin-en. Ü Mire jük? Konkurrens vegrehajtasi szalak egyma s kí zí tti kommunika ciüja ra, pl. Ü Kesobb lesz rüluk bovebben szü. 18

19 Memüria m veletek Ü Az adatok, amiket vegigolvasunk, vagy amiket kiırunk, egy memüriacımtol kezdve, folytonosan helyezkednek el Ü Pelda ul egy ba jttí mbben Ö ByteArrayInputStream, -OutputStream Ü Vagy esetleg egy karaktertí mbben Ö CharArrayReader, -Writer Ü Vagy egy sztringben Ö StringReader, -Writer Ö StringBufferInputStream Karaktertí mbbol olvasunk char[] t = {'r', 'o', 'k', 'a'; CharArrayReader in = new CharArrayReader(t); t[0] = 'f'; System.out.println(in.read()=='f'); "true"-t fog kiırni Ba jtcsatorna k felett definia lt karaktercsatorna k Ü Kapcsolat a ketfele szervezes csatornaoszta lyok kí zí tt Ü A kulí nbí zokarakterküdola si szabva nyok tamogatasa Ü InputStreamReader, OutputStreamWriter Ü Specifikalhatjuk, hogy melyik karakter melyik bajtra legyen lekepezve Karakterek lekepezese bajtokra Ü Egy byte tıpuső ertek 256-fele lehet Ü Karakterbol jüval tí bbfele van Ü Karakterküdolasi szabvany: mely karaktereket reprezentalja ez a 256 kulí nbí zoertek Ü Peldaul a Unicode karakterek ketbajtosak Ö a char tıpus Karakterküdola si szabva nyok Ü ASCII - 7 bit Ü Extended ASCII - 8 bit Ü EBCDIC Ü Latin-1, Latin-2 Ü Windows-os küdtablak Ü Mac-es küdta bla k 19

20 Pelda Writer w = new OutputStreamWriter(System.out,"8859_2"); w.write(336); w.flush(); System.out.write(336); Ü 8859_2 ISO Latin-2 Ü A 336 Unicode küdő karakter az "Ű " Ü A Latin-2 tartalmazza ezt a karaktert, a 256 lehetseges ertek kí zul a 213 van hozzarendelve Ü Tehat a System.out-ra a 213 bajt fog kiırüdni Ü Platform-fuggo, hogy mit fogunk latni Ö Pl. Latin-1 kepernyoeseten "O" karaktert ISO Latin-1 Ü Az ISO Latin-1 küdolasban szereplo karakterek a Nyugat-Eurüpaban hasznalatos bet ket (is) tartalmazzak Ü Ezen karakterekhez az ISO Latin-1 ugyanazokat a szamokat rendeli, mint a Unicode. Azaz: a Unicode küdtabla elso 256 karaktere ugyanaz, mint a Latin-1 Ü Azaz a hullamos O bet Unicode küdja is 213 ISO Latin-2 Ü Tartalmazza azokat a bet ket is, amelyeket csak mifelenk hasznalnak, nevezetesen az o,, Ű es Ú bet ket Ü Az elobbi peldaban: a 336 Unicode küdő karaktert, az Ű -t, es a 213 ertekkel kapcsolja í ssze Ü Ez a karakter nincs az ISO Latin-1 küdtablaban, abban a hullamos valtozat van a 213 ertekhez kapcsolva Pelda Writer w = new OutputStreamWriter(System.out,"8859_1"); w.write("tekn\u0150c"); w.close(); Ü A \u0150 karakter a 336-os, azaz az Ű bet Ü Ez nincs a Latin-1-ben (8859_1) Ü A kimeneten a? karakternek megfelelobajt ırüdik ki helyette tekn?c Masik pelda Writer w = new OutputStreamWriter(os,"MacCentralEurope"); w.write('í'); w.flush(); // w.write(218); Reader r = new InputStreamReader(is,"Cp1250"); int i = r.read(); System.out.println(i); // 328 jelenik meg Ü A 218 Unicode küd az É bet Ü A MacCentralEurope a 242 küdot rendeli hozza Ü A Windows Latin-2 (azaz a Cp1250) a 328 Unicode küdő karaktert rendeli a 242 ertekhez Ü Ez a n bet 20

21 Tanulsa g Ü Ugyanazzal a karakterküdolassal erdemes beolvasni, mint amivel kiırtuk az adatokat Ü Ha a Java programunk mas programmal / mas platformmal tartja a kapcsolatot, akkor is jül megy Ü Ez a szabaly platformfuggetlenseget is biztosıt Ü Ket Java program kí zí tti kommunikaciünal is fontos (p. halüzatos program) A Java altal tamogatott karakterküdola si szabva nyok Ü ISO Latin-1, ISO Latin-2,... Ü Windows Latin-1,... Ü Mac küdolasok Ü IBM küdta bla k Ü Tavol-keleti szabvanyok (Big5, JIS, stb.) Ü Mindnek megfelel egy sztring, amit a konstruktornak kell atadni. Pl. "8859_1" Karakterszervezes fa jlcsatorna k Reader fr = new FileReader("olvass.el"); Reader fr = new InputStreamReader( new FileInputStream("olvass.el") ); Reader fr = new InputStreamReader( new FileInputStream("olvass.el"), "8859_2"); Csatornak egymas utan f zese Ü SequenceInputStream Ü A konstruktoranak megadunk tí bb InputStream-et Ü Ezeket egymas utan vegigolvashatjuk: ha az egyik veget er, automatikusan ugrik a kí vetkezore Pelda k InputStream in = new SequenceInputStream( (new FileInputStream("papsajt")), System.in ); Vector v = new Vector(2); v.addelement(new FileInputStream("papsajt")); v.addelement(system.in); InputStream in = new SequenceInputStream(v.elements()); Ü Vegigolvashatjuk a "papsajt" fajlt, es folytatjuk az olvasast a szabvanyos bemenetrol 21

22 Mibol lehet meg olvasni, mire lehet meg ırni? Ü Mas kí nyvtarakban is vannak olyan osztalyok, metüdusok, amelyek segıtsegevel csatornakhoz juthatunk hozza Ü Peldaul a java.net.socket osztalytül tudunk olyan bemeneti es kimeneti csatornakat beszerezni, amivel halüzati kapcsolaton keresztul lehet irkalni, olvasgatni... Kiegeszıtesek az alapfunkcionalita shoz Ü A ket bemeneti csatorna alaposztalynak, az InputStream-nek es a Reader-nek tova bbi "szolga ltata sai" Ü Kí nyvjelzomechanizmus Ü Adatelerhetoseg-vizsga lat Adatelerhetoseg-vizsga lat Ü InputStream: Ü Reader: int available() boolean ready() Ü Meg lehet tudni, hogy a beolvasas blokkolüdni fog-e. Az available csak becslest ad! public static int meret( String fnev ) return (new FileInputStream(fnev)).available(); Kí nyvjelzomechanizmus Kí nyvjelzomechanizmus void mark(int readlimit) throws IOException boolean marksupported() void reset() throws IOException void mark(int readlimit) throws IOException boolean marksupported() void reset() throws IOException Ü Betehetek egy kí nyvjelzot az aktualis pozıciüra Ü... amennyiben a csatornaosztaly tamogatja... Ü Visszaugrok a kí nyvjelzoig Ü Betehetek egy kí nyvjelzot az aktualis pozıciüra Ö Ha visszaugrok a reset-tel, akkor innen kezdve megint elolvashatom a csatorna tartalmat Ö A mark es a reset kí zí tt max. "readlimit" bajtot olvashatok at... 22

23 Kí nyvjelzomechanizmus void mark(int readlimit) throws IOException boolean marksupported() void reset() throws IOException Ü Jünehany csatornaosztaly tamogatja a kí nyvjelzomechanizmust, de jü sok nem Pelda public static void ketszer ( ByteArrayInputStream in ) int c; in.mark(in.available()); while( (c=in.read())!= -1 ) System.out.println(c); in.reset(); // meg egyszer ırjuk ki ugyanazt while( (c=in.read())!= -1 ) System.out.println(c); Extra funkcionalitas: sz rok Ü Mar beszeltunk ezekrol: Ö buffereles Ö adattıpus-ertekek Ö szí veges nyomtatas Ü Tovabbiakat fogunk megismerni... Meg mielott raternenk... Ü DataInputStream DataOutputStream String readutf() void writeutf(string s) Ü PrintStream, PrintWriter kivetelek DataInputStream DataOutputStream String readutf() void writeutf(string s) Ü Unicode sztringek elmentese es visszaolvasa sa Ü Platformfuggetlen Ö Ő n. UTF-8 formatumban Ü Informaciüvesztes nelkul Ö ugyanis a karakterszervezes csatornak csak a nekik megfelelokarakterküdolasi szabvany szerinti karaktereket tudjak 23

24 Feladat Ü Irjunk ki fajlba sztringeket es karaktertí mbí ket az í sszes a ltalunk ismert müdon. Ü Derıtsuk fel a kulí nbsegeket! PrintStream, PrintWriter: kivetelek Ü A m veletek nem valtanak ki IOException kivetelt gond eseten Ü Helyette egy error-flag-et allıtanak boolean checkerror() Extra funkcionalitas: tovabbi sz rok Ü bemenet sorainak szamolasa Ü adat visszatevese Ü objektumok beolvasasa / kiırasa Ü tí mí rıtes Ü stb. A bemenet sorainak szamolasa Ü LineNumberReader, LineNumberInputStream LineNumberReader be = new LineNumberReader( new FileReader("borok.txt") ); String sor; while( (sor = be.readline())!= null ){ if( sor.endswith("bor") ) System.out.println(be.getLineNumber()-1); be.close(); Adat visszatevese a bemeneti csatorna ra Ü PushbackReader, PushbackInputStream PushbackReader be = new PushbackReader( new InputStreamReader(System.in), 2 ); int c = be.read(); while( (c == ' ') (c == '\t') (c == '\r') (c == '\n') ) c = be.read(); if( c!= -1 ){ be.unread(c); be.unread(' '); 24

25 Objektumok ta rola sa Ü ObjectInputStream, ObjectOutputStream Ü kiterjesztik a Data*putStream osztalyokat Ü de nem csak adattıpus-ertekeket lehet elmenteni / visszaolvasni, hanem objektumokat is void writeobject( Object obj ) throws IOException Object readobject() throws OptionalDataException, ClassNotFoundException, IOException Objektumok ta rola sa Ü ObjectInputStream, ObjectOutputStream Ü kiterjesztik a Data*putStream osztalyokat Ü de nem csak adattıpus-ertekeket lehet elmenteni / visszaolvasni, hanem objektumokat is void writeobject( Object obj ) throws... Object readobject() throws... Szerializa ciü Ü Amikor egy objektumot elmentunk, azokat az objektumokat is el kell menteni, amelyekre hivatkozik... Ü E s ez ıgy megy rekurzıvan... Ü Ha egy objektum a hivatkozottak kí zí tt tí bbszí r is elofordul, akkor is csak egyszer kell elmenteni! Serializable Ü Ezt a bonyolult feladatot a Java megcsinalja nekunk. Ü Csak annyit kell tenni, hogy megvalüsıtjuk a Serializable interfeszt Ö nem specifikal metüdusokat... Ö csak oda kell ırni az osztalyunk definıciüjaba Mi is tí rtenik? Ü Metainformaciü is elmentesre kerul Ö az objektum osztalya, verziüszam, stb. Ü Elmentodnek az objektum adattagjai Ü Elmentodnek a hivatkozott objektumok is rekurzıvan Ü Ha az objektum mar korabban el lett mentve, akkor helyette egy "mutatü" lesz elmentve 25

26 Pelda Vector v = new Vector(); v.add("lennon"); v.add(new Integer(42)); ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream("a.dat") ); out.writeobject(v); out.close(); ObjectInputStream in = new ObjectInputStream( new FileInputStream("a.dat") ); v = (Vector) in.readobject(); System.out.println(v); Feladat Ü Csinaljunk egy foní kí t ket beosztottal. Mentsuk el a foní kí t. Ü Egy masik programmal olvassuk be a foní kí t (a ket beosztottjaval egyutt). Ü Az Alkalmazott es a Foní k osztalyokban ırjunk tostring() metüdust, hogy tudjuk tesztelni az elozoket programot... Ü Csak a hecc kedveert... a foní k egyik beosztottja legyen sajat maga. Finomhangola s Ü Lehet szabalyozni, hogy pontosan mi is mentodjí n el az objektum altal tarolt adatokbül Ü Tí bb szinten nyılik lehetoseg a szabalyozasra Ö transient Ö read/writeobject feluldefinialasa Ö serialpersistantfields Ö Externalizable Finomhangola s Ü Lehet szabalyozni, hogy pontosan mi is mentodjí n el az objektum altal tarolt adatokbül Ü Tí bb szinten nyılik lehetoseg a szabalyozasra Ö transient Ö read/writeobject feluldefinialasa Ö serialpersistantfields Ö Externalizable transient Ü Egy müdosıtüszü Ö mint pl. public, final, abstract, stb. Ü Ha egy adattagot nem szeretnenk szerializaciü soran elmenteni, akkor ele ırjuk, hogy transient Ü Mire hasznaljuk? Ö Egyszeri adat, pl. eroforras-leırü (Frame) Ö Bizalmas adat Ö Redundans informaciü 26

27 A fajlrendszer fajljaihoz valü hozza feres Ü A File osztalyon keresztul tí rtenhet Ü A File objektumok fajlneveket reprezenta lnak Ü Nem fajlokat: egy File objektumon keresztul nem lehet olvasni vagy ırni egy fajlt. Arra ott vannak Ö a csatornak Ö a kí zvetlen eleres fajlok Mit lehet csinalni File objektumokkal? Ü Lekerdezni, hogy letezik-e olyan nev fajl Ü Lekerdezni, hogy olvashatü/ırhatü-e Ü Egy fa jlt tí rí lni Ü Atnevezni Ü Kí nyvtarat kilista zni Ü stb. Pelda File t rlend = new File("dobj.ki"); if( t rlend.canwrite() ) t rlend.delete(); Ü Ezek m veletek a fajlrendszeren... File objektum letrehozasa File k nyvtar = new File("/usr/local/bin"); File ez_is_az = new File("/usr/local","bin"); File fajl = new File(k nyvtar,"vim"); String elv = File.separator; File k nyvtar = new File(elv+"usr"+elv+"local"+elv+"bin"); M veletekre pelda public boolean exists() public boolean isfile() public boolean renameto( File cel ) public boolean mkdir() public boolean isabsolute() public File getparentfile() public long lastmodified() 27

28 Feladat Ü Listazzuk ki a tmp alkí nyvtar í sszes txt kiterjesztes fajljanak nevet! Ü Ehhez kicsit kí rul kell nezni az API dokumenta ciüban... Szí vegfeldolgoza s Ü StreamTokenizer Ü Egy csatorna tartalmat tokenekre bontja int nexttoken() throws IOException Ö szamok Ö azonosıtük Ö megjegyzesek Ü Egy csatorna fí le hozzuk letre, mint egy sz rot (de ez nem csatorna) Szavakra bontunk egy szí veget import java.io.*; class Szavakra { public static void main( String args[] ) StreamTokenizer st = new StreamTokenizer( new InputStreamReader(System.in) ); while( st.nexttoken()!= StreamTokenizer.TT_EOF ) if( st.ttype == StreamTokenizer.TT_WORD ) System.out.println(st.sval); Pr ba ld ki! Javıta s st.ordinarychar(46); st.slashstarcomments(true); Ü A pont ıra sjel kí zí nseges karakter. A szí vegben a C-stılusŐ megjegyzeseket figyelmen kıvul akarjuk hagyni. A kutya /* ez egy allat */ ugat. A kutya ugat int-tek beolvasasa szí veges formatumbül Ü Szí veg formatum, pl. szí vegfajl Ü int tıpuső ertekeket tartalmaz Ü Szeretnenk egy csatorna osztalyt, amivel ilyet kí nny feldolgozni Ü Sz rocsatornakent valüsıtjuk meg Ö A PrintStream inverze Ü Segıt a StreamTokenizer osztaly 28

29 int-tek beolvasasa szí veges formatumbül import java.io.*; class NotExpectedTokenException extends Exception { public int token; public NotExpectedTokenException( int token ) { this.token=token; public class TypedReader extends FilterReader { public TypedReader( Reader in ){ super(in); public int scanint() throws NotExpectedTokenException, IOException {... public static void main( String[] args )... public int scanint() throws NotExpectedTokenException, IOException { StreamTokenizer st = new StreamTokenizer(in); st.ordinarychar('/'); // nincs megjegyzesjel st.ordinarychar('.'); // ne legyen tizedespont st.nexttoken(); if ( (st.ttype==streamtokenizer.tt_number) && (st.nval>=integer.min_value) && (st.nval<=integer.max_value) ) return (int)st.nval; // sikerult szamkent ertelmezni else throw new NotExpectedTokenException(st.ttype); public static void main( String[] args ) TypedReader in = new TypedReader( new InputStreamReader(System.in) ); int sum = 0; boolean endofints = false; while (!endofints) { System.out.print("Irjon be egy szamot: "); try { sum += in.scanint(); System.out.println(); catch (NotExpectedTokenException e) { endofints=true; System.out.println("\nAz sszeg: " + sum); Feladat Ü A matrix osztalyhoz ırjunk olyan beolvasü m veletet, ami egy szí vegfajlbül olvas be egy matrixot. A szí vegfajlban nem feltetlenul soronkent vannak a matrix elemei, egy sorban lehet tí bb is. Az elemeket feher szükí zí k valasztjak el. Ha ettol elterobemenetet tapasztalunk, valtsunk ki kivetelt! 29

Be- és kimenet kezelése

Be- és kimenet kezelése Be- és kimenet kezelése A legelső program Üdvözlő szöveg kiírása a képernyőre class Hello { public static void main( String args[] ){ System.out.println("Hello World!"); } } Hogyan használjunk fájlokat?

Részletesebben

Java programozási nyelv 10. rész Input/output kezelés

Java programozási nyelv 10. rész Input/output kezelés Java programozási nyelv 10. rész Input/output kezelés Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/28 Tartalomjegyzék

Részletesebben

JAVA ALKALMAZÁSOK 5. ELŐADÁS 1/9/2017 1

JAVA ALKALMAZÁSOK 5. ELŐADÁS 1/9/2017 1 JAVA ALKALMAZÁSOK 5. ELŐADÁS 1/9/2017 1 TARTALOM Input/Output oadatfolyamok ofájlkezelés okonzol 1/9/2017 2 Input/Output, adatfolyamok 1/9/2017 3 INPUT/OUTPUT Szinte minden alkalmazás használ valamilyen

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java 9. gyakorlat Fájlkezelés A fájlkezelés Java-ban különböző osztályok összekapcsolásával történik. Minden egyes osztály valamilyen minimális szolgáltatást tesz hozzá a többihez.

Részletesebben

Reader /Writer InputStreamReader, OutputStreamWriter

Reader /Writer InputStreamReader, OutputStreamWriter 9. gyakorlat Input, output A Java adatfolyamokkal dolgozik (stream). [Ez olyan objektum, ahova tesszük vagy kapjuk az adatot úgy, hogy nem kell foglalkozunk a file-al, hálózattal,stb.] 2 típusa van: InputStream

Részletesebben

Java programozási nyelv

Java programozási nyelv Szoftvertechnológia sáv Java programozási nyelv Dirk Louis-Peter Müller: Java (Belépés az internet világába) Panem kiadó, Budapest, 2002. Webvilág sorozat Készítette: Gregorics Tibor Vázlatos áttekintés

Részletesebben

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés Kivételek kezelése (exception handling) Hibakezelés old style class Szamolo { void szamol( String s, int i ) { int d; if (i!= 0) d = (i+1)/i; else if (s!= null) d = s.length(); else if (i > 10) // applikációs

Részletesebben

Az új be- és kimenet könyvtár

Az új be- és kimenet könyvtár Az új be- és kimenet könyvtár import java.io.ioexception; import java.io.fileinputstream; import java.io.fileoutputstream; import java.nio.channels.filechannel; import java.nio.bytebuffer; class Masol

Részletesebben

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o Miért Java? széleskörben elterjedt Micro Edition - beágyazott rendszerek, régi telefonok Standard Edition - PC, android ezen alapul Enterprise Edition - vállalati programok, web service-ek multiplatform

Részletesebben

Debreceni Egyetem Informatika Kar. Mobiltelefon programozás és mobil adatbázis-kezelés

Debreceni Egyetem Informatika Kar. Mobiltelefon programozás és mobil adatbázis-kezelés Debreceni Egyetem Informatika Kar Mobiltelefon programozás és mobil adatbázis-kezelés Témavezető: Dr. Fazekas Gábor egyetemi docens Készítette: Toldi Gábor informatika tanár Debrecen 2008 Tartalomjegyzék

Részletesebben

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.

Részletesebben

Segédanyag: Java alkalmazások gyakorlat

Segédanyag: Java alkalmazások gyakorlat Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2009/2010-2 félév, 2. gyakorlat 1 Osztályok és objektumok default, public, protected, private láthatóság a metódusokra és adattagokra (első

Részletesebben

Programozási technológia

Programozási technológia Programozási technológia Osztályszintű elérés Kivételkezelés, Fájlkezelés Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Osztályszintű elérés (statikusság) Az osztályban definiált attribútumok és műveletek

Részletesebben

Osztályszintű elérés, kivételkezelés, fájlkezelés

Osztályszintű elérés, kivételkezelés, fájlkezelés Programozási, kivételkezelés, fájlkezelés Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 3 4 2 (statikusság) Az osztályban definiált attribútumok és műveletek az osztályból példányosított

Részletesebben

Programozási nyelvek II.: JAVA

Programozási nyelvek II.: JAVA Programozási nyelvek II.: JAVA 5. gyakorlat 2017. október 9-13. 5. gyakorlat Programozási nyelvek II.: JAVA 1 / 34 Az 5. gyakorlat tematikája Kivételkezelés alapjai Be és kimenet BufferedReader, Scanner

Részletesebben

TCP/IP kapcsolat Java nyelven

TCP/IP kapcsolat Java nyelven Java programozási nyelv 2007-2008/ősz 5. óra TCP/IP kapcsolat Java nyelven Java streamek, szűrők, java.io TCP/IP alapú kommunikáció Egyszerű protokoll tervezése legradi.gabor@nik.bmf.hu szenasi.sandor@nik.bmf.hu

Részletesebben

Java gyakorlat feladatai e s megolda sai (2014.04.10)

Java gyakorlat feladatai e s megolda sai (2014.04.10) Java gyakorlat feladatai e s megolda sai (2014.04.10) 1. Feladat Számítsuk ki a Fibonacci sorozat első 20 tagját! / Fibonacci számsorozat tagjait kiszámoló, egyetlen osztályból álló program @author Bence

Részletesebben

Példaprogramok Android alá (Lista, mentés, visszatöltés, pattogó android figura) Android alapok. Android játékfejlesztés.

Példaprogramok Android alá (Lista, mentés, visszatöltés, pattogó android figura) Android alapok. Android játékfejlesztés. Példaprogramok Android alá (Lista, mentés, visszatöltés, pattogó android figura) Android alapok Android játékfejlesztés Godinek László Tartalomjegyzék 1 Mentés... 1 1.1 A fájlmentésről röviden... 1 1.2

Részletesebben

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció Serialization (in Java) Szerializáció Java Serialization API Standard eljárás az objektumok állapotának adatfolyamba történő kiírására (elmentésére egy bájtszekvenciába), és visszatöltésére Perzisztencia

Részletesebben

Abstract osztályok és interface-ek. 7-dik gyakorlat

Abstract osztályok és interface-ek. 7-dik gyakorlat Abstract osztályok és interface-ek 7-dik gyakorlat Abstract metódusok és osztályok Az OO fejlesztés során olyan osztályokat is kialakíthatunk, melyeket csak továbbfejlesztésre, származtatásra lehet használni,

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java 2. gyakorlat Függvények Általános prototípus Módosítószavak Láthatóság: public, protected, private. Ha nem definiált, akkor úgynevezett package-private láthatóság. Lehet abstract

Részletesebben

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni? A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály

Részletesebben

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:

Részletesebben

13. Állományok, bejegyzések 14. Folyamok 15. Közvetlen hozzáférésű állomány. Programozási technológia (Java) - III. / 1

13. Állományok, bejegyzések 14. Folyamok 15. Közvetlen hozzáférésű állomány. Programozási technológia (Java) - III. / 1 13. Állományok, bejegyzések 14. Folyamok 15. Közvetlen hozzáférésű állomány Programozási technológia (Java) - III. / 1 13. Állományok, bejegyzések 1. A java.io csomag 2. Útvonalak 3. A File osztály 4.

Részletesebben

Az emelt szintű. informatika érettségi. programozási feladatainak. megoldása Java nyelven. NetBeans IDE 8.1 környezetben

Az emelt szintű. informatika érettségi. programozási feladatainak. megoldása Java nyelven. NetBeans IDE 8.1 környezetben Az emelt szintű informatika érettségi programozási feladatainak megoldása Java nyelven NetBeans IDE 8.1 környezetben Klement András 2016 Utolsó módosítás: 2016. május 25. Tartalomjegyzék Tartalomjegyzék

Részletesebben

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real

Részletesebben

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. május 6. Parancssori paraméterek Parancssorban történ programindításkor a program nevét követ en szóközökkel elválasztva paraméterek (command

Részletesebben

Java Programozás 9. Ea: Java fájlkezelés. Sztrímtan

Java Programozás 9. Ea: Java fájlkezelés. Sztrímtan Java Programozás 9. Ea: Java fájlkezelés Sztrímtan 148/1 B ITv: MAN 2018.02.05 Java fájlkezelés A Java nyelvben a fájlkezelés Stream-eken keresztül valósul meg Stream: adatok sorozata, egyik végén befelé

Részletesebben

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető

Részletesebben

Programozás I. Első ZH segédlet

Programozás I. Első ZH segédlet Programozás I. Első ZH segédlet Ezen az oldalon: kiírás az alapértelmezett (hiba) kimenetre, sztring konkatenáció, primitív típusok, osztály létrehozás, példányosítás, adattagok, metódusok Kiíratás alapértelmezett

Részletesebben

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error Generics Egyszerűbb példák (java.util csomagból): public interface List { void add(e x); Iterator iterator(); public interface Iterator { E next(); boolean hasnext(); E - formális típusparaméter,

Részletesebben

OOP: Java 8.Gy: Abstract osztályok, interfészek

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás

Részletesebben

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Programozási nyelvek II. JAVA EA+GY 1. gyakolat Programozási nyelvek II. JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2017/2018. őszi félév Tartalom 1 Amit tudni kell a félévről

Részletesebben

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport 10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)

Részletesebben

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Öröklés ism. Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Szeberényi Imre BME IIT Egy osztályból olyan újabb osztályokat származtatunk, amelyek rendelkeznek

Részletesebben

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?

Részletesebben

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

Magas szintű programozási nyelvek 2 Előadás jegyzet

Magas szintű programozási nyelvek 2 Előadás jegyzet Magas szintű programozási nyelvek 2 Előadás jegyzet 1. Rendszerfejlesztés 0. lépés: Elemzés (analízis) 1. lépés: Tervezés a, technológia független rész b, technológia függő rész 2. lépés: Megvalósítás

Részletesebben

Programozási nyelvek II.: JAVA

Programozási nyelvek II.: JAVA Programozási nyelvek II.: JAVA 6. gyakorlat 2017. október 16-20. 6. gyakorlat Programozási nyelvek II.: JAVA 1 / 24 Az 6. gyakorlat tematikája túlterhelés - összefoglalás statikus adattagok és metódusok

Részletesebben

Objektumorientált programozás C# nyelven III.

Objektumorientált programozás C# nyelven III. Objektumorientált programozás C# nyelven III. Kivételkezelés Tulajdonságok Feladatok Készítette: Miklós Árpád Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és

Részletesebben

JAVA PROGRAMOZÁS 7.ELŐADÁS

JAVA PROGRAMOZÁS 7.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 7.ELŐADÁS 2014-2015 tavasz Állománykezelés 2 Állományok, bejegyzések 3 A java.io csomag Útvonalak 4 Absztrakt / valódi útvonal A valódi útvonal

Részletesebben

Programozás I. 8. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 8. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 8. gyakorlat 1 StringTokenizer osztály Stringeket darabolhatunk fel vele részekre Alapértelmezetten 5 esetben darabol: Szóköz Tab Újsor karakter Carriage return (kocsi vissza) karakter Line

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Folyamok kezelése Fájlok írása/olvasása Folyamok kezelése Szabvány folyamok Eddig Kiírás a szöveges konzolra:

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Névterek és hatókörök Láthatósági szintek Osztály szintő tagok Beágyazott osztályok

Részletesebben

JAVA PROGRAMOZÁS 8.ELŐADÁS

JAVA PROGRAMOZÁS 8.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 8.ELŐADÁS 2014-2015 tavasz Véletlen elérésű állományok; JDBC 2 Véletlen elérésű állományok A RandomAccessFile osztály 3 Közvetlen hozzáférésű

Részletesebben

A WEB programozása - JSP1 dr.gál Tibor. 2010. őszi félév

A WEB programozása - JSP1 dr.gál Tibor. 2010. őszi félév Általános jellemzők JavaServer Pages (JSP) Java utasításokat helyezetünk el a HTML lapon Ezket a Java utasításokat a kiszolgáló végrehajtja Az ügyfél felé generált tartalom: statikus HTML kód + Java utasítások

Részletesebben

Adatszerkezetek és algoritmusok

Adatszerkezetek és algoritmusok 2012. október 18. Ismétlés El z órai anyagok áttekintése Ismétlés Specikáció Típusok, kifejezések, m veletek Adatok ábrázolása a memóriában Vezérlési szerkezetek Függvények Osztályok, objektumok Paraméterátadás

Részletesebben

Országzászlók (2015. május 27., Sz14)

Országzászlók (2015. május 27., Sz14) Országzászlók (2015. május 27., Sz14) Írjon programot, amely a standard bemenetről állományvégjelig soronként egy-egy ország zászlójára vonatkozó adatokat olvas be! Az egyes zászlóknál azt tartjuk nyilván,

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 11. Jó hír Jó hír Java lesz! Tárgyismertet Elérhet ségek: Kovács Kristóf: kkovacs@math.bme.hu Rimay Zoé: zrimay@math.bme.hu, Követelmények: Év végi beadandó (facebook):

Részletesebben

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás - Pál László 12. ELŐADÁS Állomány-kezelés 2 Objektumorientált programozás - Pál László Mi a

Részletesebben

S z á m í t ó g é p e s a l a p i s m e r e t e k

S z á m í t ó g é p e s a l a p i s m e r e t e k S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Ami

Részletesebben

Java Programozás 6. Gy: Java alapok. Adatkezelő 2.rész

Java Programozás 6. Gy: Java alapok. Adatkezelő 2.rész Java Programozás 6. Gy: Java alapok Adatkezelő 2.rész 25/1 B ITv: MAN 2018.04.13 A feladat Feladat: folytassuk a panel életre keltését! - Alakítsuk ki a Lista panelt - Betöltéskor olvassuk be az adatokat

Részletesebben

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. Programozás III CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van a fejlesztő környezet és az osztálykönyvtárak is: rt.jar fájl

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 8. gyakorlat Fájlkezelés Surányi Márton PPKE-ITK 2010.11.02. Fájlkezelés C++-ban C++-ban van lehet ségünk fájlok kezelésére. Itt már tényleges fájlokkal dolgozunk, nem pedig

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked

Részletesebben

1. Alapok. Programozás II

1. Alapok. Programozás II 1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph

Részletesebben

Programozás II. labor

Programozás II. labor Programozás II. labor 1. rész Programozási tételek Öröklődés Interfészek Eseménykezelés Kivételkezelés Visszalépéses keresés Programozás II. Programozási tételek OOP alapok ismétlése Öröklődés Öröklődés

Részletesebben

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22 Szerializáció Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 1 / 22 Tartalomjegyzék 1 Szerializációs Alapfogalmak 2 Szerializációs Megoldások Object Szerializáció XML

Részletesebben

Segédanyag: Java alkalmazások gyakorlat

Segédanyag: Java alkalmazások gyakorlat Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2010/2011-2 félév, 11. gyakorlat (az előző 2 gyak közül az egyiken ZH volt, a másik szünet miatt elmaradt) 1 JAR fájl készítés A JAR (Java

Részletesebben

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18 C# Nyelvi Elemei Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 1 / 18 Tartalomjegyzék 1 Object 2 Típusok 3 String 4 RegEx Tóth Zsolt (Miskolci Egyetem) C# Nyelvi

Részletesebben

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

Részletesebben

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelık Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát

Részletesebben

0.1. Mi az a standard be- és kimenet?... 1. 0.2. A két mintafeladat leírása

0.1. Mi az a standard be- és kimenet?... 1. 0.2. A két mintafeladat leírása KöMaL Technikai tanácsok az I- és S-jelű pontversenyhez A standard be- és kimenet kezelése Tartalomjegyzék 0.1. Mi az a standard be- és kimenet?............................. 1 0.2. A két mintafeladat leírása.................................

Részletesebben

Java IX. telkezelés a Java-ban

Java IX. telkezelés a Java-ban Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes

Részletesebben

Java programozási nyelv 5. rész Osztályok III.

Java programozási nyelv 5. rész Osztályok III. Java programozási nyelv 5. rész Osztályok III. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

Felhasználó által definiált adattípus

Felhasználó által definiált adattípus Felhasználó által definiált adattípus C++ Izsó Tamás 2017. február 24. Izsó Tamás Felhasználó által definiált adattípus/ 1 Irodalom Izsó Tamás Felhasználó által definiált adattípus/ 2 Programtervezési

Részletesebben

OOP: Java 4.Gy: Java osztályok

OOP: Java 4.Gy: Java osztályok OOP: Java 4.Gy: Java osztályok. 36/1 B ITv: MAN 2019.03.02 Feladat Készítsen el egy Employee osztályt és egy Employee osztályt használó osztályt (EmpProgram). Az Employee osztálynak: van name és salary

Részletesebben

Java IX. telkezelés a Java-ban

Java IX. telkezelés a Java-ban Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes

Részletesebben

Java tutorial. Csomagok. A program tagolasa. Alrendszerek kialakıtasa. Csomag. Alrendszerek kialakıtasa

Java tutorial. Csomagok. A program tagolasa. Alrendszerek kialakıtasa. Csomag. Alrendszerek kialakıtasa Csomagok A program tagolasa í Tıpusdefinıcio k (oszta lyok, interfe szek) í Meto dusok í Blokk utasıta sok í Csomagok í Bea gyazott oszta lyok Csomag í A tıpusainkat csomagokba soroljuk í O sszetartoza

Részletesebben

OOP: Java 8.Gy: Gyakorlás

OOP: Java 8.Gy: Gyakorlás OOP: Java 8.Gy: Gyakorlás 43/1 B ITv: MAN 2019.04.10 43/2 Egy régebbi beszámoló anyaga 1. Feladat: Készítsen egy Szemely nevű osztályt a szokásos konvenciók betartásával, amely tárolja egy ember nevét

Részletesebben

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 2. ELİADÁS Visual Basic bevezetı Visual Basic.NET nyelvi elemek 2 Visual Basic.NET programozási nyelv Nyelvi elemek: Általában

Részletesebben

Python tanfolyam Python bevezető I. rész

Python tanfolyam Python bevezető I. rész Python tanfolyam Python bevezető I. rész Mai tematika Amiről szó lesz (most): Interpretált vs. fordított nyelvek, GC Szintakszis Alaptípusok Control flow: szekvencia, szelekció, iteráció... Függvények

Részletesebben

Programozás II. 2. Dr. Iványi Péter

Programozás II. 2. Dr. Iványi Péter Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c

Részletesebben

Bánsághi Anna 2014 Bánsághi Anna 1 of 35

Bánsághi Anna 2014 Bánsághi Anna 1 of 35 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 4. ELŐADÁS - ADATFOLYAMOK KEZELÉSE 2014 Bánsághi Anna 1 of 35 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

Részletesebben

Java és web programozás

Java és web programozás Budapesti Műszaki Egyetem 2015. 04. 08. 9. Előadás Kivétel kezelés a kivétel (exception) egy esemény, mely futás közben megbontja a program normális futási folyamatát például kivétel dobódik amikor 0-val

Részletesebben

7. K: JAVA alapok Konzultáció

7. K: JAVA alapok Konzultáció Objektum Orientált Programozás 7. K: JAVA alapok Konzultáció 35/1B IT MAN B IT v: 2017.05.03 MAN Hiba, biztonságos program 01. Szintaktikai hiba imt i = 0; system.out.println( alma ); for (int i = 0, i

Részletesebben

Java Programozás 1. Gy: Java alapok. Ismétlés ++

Java Programozás 1. Gy: Java alapok. Ismétlés ++ Java Programozás 1. Gy: Java alapok Ismétlés ++ 24/1 B ITv: MAN 2018.02.18 Feladat Készítsünk egy komplett konzolos alkalmazást, mely generál egy számot 0 és 100 között (mindkét határt beleértve), feladatunk

Részletesebben

Java programozási nyelv 6. rész Java a gyakorlatban

Java programozási nyelv 6. rész Java a gyakorlatban Java programozási nyelv 6. rész Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október A Java programozási nyelv Soós Sándor 1/16 Tartalomjegyzék

Részletesebben

Java adattípusok Java programozás alapjai Egyszerű adattípusok (int, float) Osztályokkal objektumok Nincs külön mutató, referencia, címe operátor, helyette: objektumok csak dinamikusan hozhatok létre és

Részletesebben

Fájlkezelés. Szöveges fájlok kezelése

Fájlkezelés. Szöveges fájlok kezelése Fájlkezelés Fájlnak nevezünk minden háttértárolón található adatot, adathalmazt (pl. szövegszerkesztőben megírt dokumentum, stb.). A fájlok: azonos típusú komponensekből felépülő adatszerkezetek. a programba

Részletesebben

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19 PHP II. WEB technológiák Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19 Tartalomjegyzék Objektum Orientált Programozás 1 Objektum Orientált Programozás Öröklődés 2 Fájlkezelés

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt

Részletesebben

Osztályok. 4. gyakorlat

Osztályok. 4. gyakorlat Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum

Részletesebben

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1 C++ I/O Bevezetés Izsó Tamás 2014. február 20. Izsó Tamás C++ I/O / 1 Section 1 Bevezetés Izsó Tamás C++ I/O / 2 Irodalom Izsó Tamás C++ I/O / 3 Paraméter illesztés függvénynév túlterhelés esetén 1 Pontos

Részletesebben

RMI = Remote Method Invocation. Java tutorial. Kliens-szerver forgato kő nyv. Elosztott objektumok rendszere forgato kő nyv.

RMI = Remote Method Invocation. Java tutorial. Kliens-szerver forgato kő nyv. Elosztott objektumok rendszere forgato kő nyv. RMI = Remote Method Invocation í Meg tudjuk hıvni olyan objektumok meto dusait is, amelyek mas virtualis gepben futnak í Kommunikacio kulő nbő z gepeken futo Java programok kő ző tt Kliens-szerver alkalmazasok

Részletesebben

Java programozási nyelv 4. rész Osztályok II.

Java programozási nyelv 4. rész Osztályok II. Java programozási nyelv 4. rész Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17 Tartalomjegyzék

Részletesebben

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek SZERVER OLDALI JAVASCRIPT 3. hét Javascript nyelvi elemek NYELVI ALAPOK: Ez sajnos igen száraz anyag, Viszont a megértékhez és a nyelv elsajátításához kell. Próbáljuk meg random gifekkel feldobni. MIRŐL

Részletesebben

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat Szimuláljuk különféle élőlények túlélési versenyét. A lények egy pályán haladnak végig, ahol váltakozó viszonyok vannak. Egy lénynek

Részletesebben

Programozás C++ -ban 2007/1

Programozás C++ -ban 2007/1 Programozás C++ -ban 2007/1 1. Különbségek a C nyelvhez képest Több alapvető különbség van a C és a C++ programozási nyelvek szintaxisában. A programozó szempontjából ezek a különbségek könnyítik a programozó

Részletesebben

ELTE SAP Excellence Center Oktatóanyag 1

ELTE SAP Excellence Center Oktatóanyag 1 Oktatóanyag 1 A dataset egy az alkalmazás-szerveren megtalálható illetve ott létrejövő szekvenciális fájl. Szerveroldali fájlkezelésre használják az SAP-ban. Megjegyzés: Amennyiben kliens oldalon található

Részletesebben

OOP: Java 6.Gy: Java osztályok. Definíció, static, túlterhelés

OOP: Java 6.Gy: Java osztályok. Definíció, static, túlterhelés OOP: Java 6.Gy: Java osztályok Definíció, static, túlterhelés 45/1 B ITv: MAN 2019.03.18 Feladat Készítsen egy Alkalmazott osztályt saját csomagban, név, kor és fizetés adatokkal. Legyen egy osztályszintű

Részletesebben

Programozási nyelvek II.: JAVA, 4. gyakorlat

Programozási nyelvek II.: JAVA, 4. gyakorlat Programozási nyelvek II.: JAVA, 4. gyakorlat 2017. október 2-6. Programozási nyelvek II.: JAVA, 4. gyakorlat 1 / 32 A 4. gyakorlat tematikája Tömbök A java.util.arrays osztály A String osztály A StringBuffer

Részletesebben

BME MOGI Gépészeti informatika 13.

BME MOGI Gépészeti informatika 13. BME MOGI Gépészeti informatika 13. 1. feladat Készítsen alkalmazást, mely elvégzi a következő feladatokat! a. Állítson elő adott intervallumba eső, adott számú véletlen számot, és írja ki a számokat egy

Részletesebben

Smalltalk 2. Készítette: Szabó Éva

Smalltalk 2. Készítette: Szabó Éva Smalltalk 2. Készítette: Szabó Éva Blokkok Paraméter nélküli blokk [műveletek] [ x := 5. 'Hello' print. 2+3] Kiértékelés: [művelet] value az értéke az utolsó művelet értéke lesz, de mindet kiírja. x :=

Részletesebben

JAVA PROGRAMOZÁS 3.ELŐADÁS

JAVA PROGRAMOZÁS 3.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 3.ELŐADÁS 2014-2015 tavasz Polimorfizmus, absztrakt osztályok, interfészek 2 Példa - Hengerprogram 3 Példa - Hengerprogram 4 Példa - Hengerprogram

Részletesebben

Java Programozás 11. Ea: MVC modell

Java Programozás 11. Ea: MVC modell Java Programozás 11. Ea: MVC modell 20/1 B ITv: MAN 2018.03.02 MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is

Részletesebben