OutputStream ja InputStream. Tietovirrat ja niiden suunnat. Tietovirtojen käyttö. FileInputStream esimerkki. DataOutputStream ja DataInputStream

Samankaltaiset tiedostot
Kurssin suoritus. Javan perusteet Kurssimateriaali. Kurssin aikataulu. Harjoitukset. Kurssin sisältö. Javan perusteet

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet

Java-API, rajapinnat, poikkeukset, UML,...

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

Olio-ohjelmointi Javalla

Sarjallistaminen. Juha Järvensivu 2007

Java kahdessa tunnissa. Jyry Suvilehto

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Rajapinta (interface)

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Ohjelmointi 2 / 2010 Välikoe / 26.3

7. Näytölle tulostaminen 7.1

Mikä yhteyssuhde on?

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Java-kielen perusteet

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Metodien tekeminen Javalla

Listarakenne (ArrayList-luokka)

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

16. Javan omat luokat 16.1

Java-kielen perusteet

Ohjelmointityö 3. Mikko Laamanen

Javan perusteita. Janne Käki

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Ohjelmoinnin jatkokurssi, kurssikoe

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

1. Omat operaatiot 1.1

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Sisältö. 22. Taulukot. Yleistä. Yleistä

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

14. Poikkeukset 14.1

Taulukot. Jukka Harju, Jukka Juslin

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

14. Poikkeukset 14.1

Tietokannat II -kurssin harjoitustyö

Ohjelmointi 2, välikoe

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Java-kielen perusteita

17. Javan omat luokat 17.1

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap

12. Näppäimistöltä lukeminen 12.1

20. Javan omat luokat 20.1

Periytyminen (inheritance)

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Java-kielen perusteita

17. Javan omat luokat 17.1

Java-kielen perusteet

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

9. Periytyminen Javassa 9.1

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

public static void main (String [] args)

Ohjelmointiharjoituksia Arduino-ympäristössä

Javan perusteet

15. Ohjelmoinnin tekniikkaa 15.1

19. Olio-ohjelmointia Javalla 19.1

Sisältö. 2. Taulukot. Yleistä. Yleistä

P e d a c o d e ohjelmointikoulutus verkossa

1 Tehtävän kuvaus ja analysointi

Kurssin suoritus. Javan perusteet Kurssimateriaali. Kurssin aikataulu. Kurssin sisältö. Harjoitukset. Javan perusteet

UML ja luokkien väliset suhteet

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Interaktiivinen tarinankerronta

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

9. Periytyminen Javassa 9.1

Taulukoiden käsittely Javalla

Ohjelmointityö 65 Tekstinmuotoilu ohjelma. Dokumentaatio. Aki Heikkinen (155394)

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

4. Luokan testaus ja käyttö olion kautta 4.1

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

812341A Olio-ohjelmointi, Olio-ohjelmoinnin peruskäsitteet ja Java-kieli

Harjoitus 5 (viikko 48)

Ohjelmointi 2 / 2011 Välikoe / 25.3

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

Muuttujat ja kontrolli. Ville Sundberg

Harjoitus 4 (viikko 47)

Ohjelmoinnin perusteet, kurssikoe

Transkriptio:

Tietovirrat ja niiden suunnat Output stream Koodi Tiedosto OutputStream ja InputStream OutputStream (abstrakti) FileOutputStream Tallennus tavuina ObjectOutputStream Olioiden tallennus FilterOutputStream (abstrakti) Koodi Tiedosto DataOutputStream Perustietotyyppien tallennus Input stream InputStream (abstrakti) Tietovirralla on aina suunta Tiedostoon tallentaessa käytetään OutputStream-luokasta perittyjä luokkia Tiedostosta luettaessa käytetään InputStream-luokasta perittyjä luokkia 1 FileInputStream ObjectInputStream FilterInputStream (abstrakti) DataInputStream Ylläolevilla luokilla tallennetun tiedon lukemiseen käytettävät luokat Tietovirtojen käyttö Tiedoston luku 1. Avataan tiedosto lukua varten 2. Alustetaan lukutietovirta 3. Kutsutaan tietovirran metodeja tiedon lukemiseksi 4. Suljetaan tietovirta ja tiedosto Tiedostoon tallennus 1. Avataan tiedosto tallennusta varten 2. Alustetaan tallennustietovirta 3. Kutsutaan tietovirran metodeja tiedon tallentamiseksi 4. Tyhjennetään tietovirta levylle 5. Suljetaan tietovirta ja FileInputStream esimerkki File file = new File( tiedosto.bin ); FileInputStream instream = new FileInputStream(file); byte[] inputarray = new byte[5]; instream.read(inputarray); // lukee 5 tavua System.out.println(inputArray); System.out.println( ERROR: + e); tiedosto 3 4 DataOutputStream ja DataInputStream DataOutputStream:lla voidaan tallentaa perustietotyyppien arvoja binäärimuotoiseen tiedostoon DataInputStream:lla voidaan lukea DataOutputStream:lla tallennettua binääritiedostoa Java ei tarkasta luettavan tiedon järkevyyttä, joten käyttäjän on tiedettävä tarkasti mitä tietotyyppejä ja missä järjestyksessä tiedostoon on tallennettu 5 DataOutputStream - tallennus DataOutputStream datastream = new DataOutputStream( outstream); datastream.writeint( 2 ); datastream.writeboolean( false ); datastream.writedouble( 9.8 ); datastream.flush(); datastream.close(); 6 Javan perusteet 2004 1

DataInputStream - luku PrintWriter ja BufferedReader DataInputStream datastream = new DataInputStream( instream); int i = datastream.readint(); boolean b = datastream.readboolean(); double d = datastream.readdouble(); System.out.println("Luettu:\n" + "int i == " + i + "\n + "boolean b == " + b + "\n" + "double d == " + d); datastream.close(); 7 PrintWriter-luokalla voidaan tallentaa tekstiä tietovirtaa apunakäyttäen tekstitiedostoon Tekstitiedostoa voidaan lukea tietovirrasta BufferedReader-luokalla 8 Tekstitiedoton tallentaminen - PrintWriter PrintWriter printwriter = new PrintWriter(outStream); printwriter.println("tässä yksi rivi."); printwriter.print("tässä rivi ilman rivinvaihtoa."); printwriter.println("tässä rivinvaihdon kanssa."); printwriter.flush(); printwriter.close(); 9 Tekstitiedoton lukeminen - BufferedReader InputStreamReader isreader = new InputStreamReader(inStream); BufferedReader buffreader = new BufferedReader(isReader); String readedline; int linenum = 0; while ((readedline = buffreader.readline())!= null) { System.out.println("Rivi " + (++linenum) + ":" + readedline); buffreader.close(); 10 Olioiden tallentaminen Java osaa tallentaa olion tilan binäärimuodossa ObjectOutputStream-luokan avulla Mikä tahansa omatekoisen luokan olio voidaan tallentaa, kun se toteuttaa (implements) Serializable-rajapinnan (interface): public class MyClass implements Serializable {... 11 Olioiden tallentaminen Student.java import java.io.*; public class Student implements Serializable { private int m_studentnumber; private String m_name; public Student(int studentnumber, String name) { m_studentnumber = studentnumber; m_name = name; public String tostring() { return "Student:\n Number: " + m_studentnumber + "\n" + " Name: " + m_name; 12 Javan perusteet 2004 2

Olioiden tallentaminen ObjectOutputStream Olioiden lukeminen ObjectInputStream ObjectOutputStream objstream = new ObjectOutputStream(outStream); objstream.writeobject(new Student(11, "Matti")); objstream.writeobject(new Student(34, "Tuukka")); objstream.writeobject(new Student(99, "Teppo")); objstream.flush(); objstream.close(); 13 ObjectInputStream objinput = new ObjectInputStream(inStream); Student student1 = (Student) objinput.readobject(); Student student2 = (Student) objinput.readobject(); Student student3 = (Student) objinput.readobject(); System.out.println("1:" + student1 + "\n" + "2:" + student2 + "\n" + "3:" + student3); objinput.close(); catch (ClassNotFoundException e) { System.out.println("ClassNotFnd: " + e); 14 ohjelmakoodin dokumentoinnin apuväline Ohjelmakoodiin voi sijoittaa kommentteja, joista osaa tehdä html-muotoisen dokumentaation Dokumentaatio on ulkoasultaan ja toiminnallisuudeltaan samanlainen kuin Javan oman API:n dokumentaatio Kommenteissa pitää käyttää ns. tageja joita ymmärtää 15 16 Kommentti sijoitetaan ennen luokkaa, metodia tai attribuuttia: * Tämä luokka arpoo lottorivin Kommentin sisällä voi olla @-merkillä alkavia tageja -tagit @author Tekijä @version Versionumero @param parametrin_nimi Kuvaus @return Kuvaus paluuarvosta Kommenteissa voi käyttää halutessaan HTML-koodia. 17 18 Javan perusteet 2004 3

-käyttö HTML-dokumentaatio saadaan komennolla javadoc lähdetiedosto.java :ia voi pyytää tekemään myös useasta tiedostosta dokumentaation: javadoc *.java Komentoriviparametreilla voidaan vaikuttaa dokumentaation tyyliin -private komentoriviparametri dokumentoi myös private ja protected-näkyvyysalueilla esitellyt metodit ja attribuutit 19 esimerkki * Malliluokka, jossa esitellään :n toimintaa * @version 1.0 * @author Matti Meikäläinen public class TestApp { * Malli luokkamuuttujasta private int m_membervariable; * Mallimetodi * @param name Otettava parametri * @return Merkkijono jonka metodi palauttaa public String testmethod(string name) { /* 20 Oletusarvoisesti dokumentoi vain public-näkyvyysalueeseen määritellyt attribuutit ja metodit -private komentoriviparametrilla se ottaa mukaan myös private ja protectednäkyvyysalueiden dokumentoinnin Lisätietoa :sta löytyy verkosta: http://java.sun.com/j2se/javadoc/ Yhteenveto Kurssialue 21 22 Kurssialue 1/5 Kurssialue 2/5 Oliot ja luokat Olioiden määrittely Java-kielessä Attribuutit ja metodit Näkyvyysalueet Staattiset attribuutit / metodit Konstruktorit null arvo Metodit Paikalliset muuttujat, metodin parametrit, luokan attribuutit Tehtävien jako pienempiin palasiin this-määreen käyttö Metodien paluuarvot 23 Perustietotyypit Perustietotyyppien ja olioiden erot Määrittelyt Sijoitukset Vertailuoperaatiot Kasvatusoperaatiot, vähennysoperaatiot,... Vakiot Vertailulausekkeet Ehtojen luonti ja yhdistely Monihaaraiset if-lauseet switch-lauseke 24 Javan perusteet 2004 4

Kurssialue 3/5 Muuttujat Näkyvyysalue Elinikä Roskienkeruu Tyypinmuunnokset Toistorakenteet Käyttö Sopivan toistorakenteen valinta Liikkuminen toistorakenteen sisällä Kurssialue 4/5 Taulukot Luonti (yksi ja useampiulotteiset taulukot) Läpikäynti Kopiointi Rajoitteet Vector-luokka Tiedostot FileInputStream/FileOutputStream DataInputStream/DataOutputStream BufferedReader/PrintWriter ObjectInputStream/ObjectOutputStream 25 26 Kurssialue 5/5 Rekursio UML-kaaviot Valmiiden luokkien käyttö J2SE API Kommentit Tulostus komentoikkunaan Poikkeusten käsittely Ohjelman tekoprosessi Javakielellä Termit + muut käsitellyt asiat 27 Javan perusteet 2004 5