Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

1 DataOutputStream ja DataInputStream DataOutputStream:lla voidaan tallentaa perustietotyyppien arvoja binäärimuotoiseen tiedostoon DataInputStream:lla.

Samankaltaiset esitykset


Esitys aiheesta: "1 DataOutputStream ja DataInputStream DataOutputStream:lla voidaan tallentaa perustietotyyppien arvoja binäärimuotoiseen tiedostoon DataInputStream:lla."— Esityksen transkriptio:

1 1 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

2 2 DataOutputStream - tallennus try { File file = new File(fileName); FileOutputStream outStream = new FileOutputStream(file); DataOutputStream dataStream = new DataOutputStream( outStream); dataStream.writeInt( 2 ); dataStream.writeBoolean( false ); dataStream.writeDouble( 9.8 ); dataStream.flush(); dataStream.close(); } catch (IOException e) { System.out.println("ERROR: " + e); }

3 3 DataInputStream - luku try { File file = new File(fileName); FileInputStream inStream = new FileInputStream(file); 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(); } catch (IOException e) { System.out.println("ERROR: " + e); }

4 4 PrintWriter ja BufferedReader PrintWriter-luokalla voidaan tallentaa tekstiä tietovirtaa apunakäyttäen tekstitiedostoon Tekstitiedostoa voidaan lukea tietovirrasta BufferedReader-luokalla

5 5 Tekstitiedoton tallentaminen - PrintWriter try { File file = new File(fileName); FileOutputStream outStream = new FileOutputStream(file); 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(); } catch (IOException e) { System.out.println("ERROR: " + e); }

6 6 Tekstitiedoton lukeminen - BufferedReader try { File file = new File(fileName); FileInputStream inStream = new FileInputStream(file); 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(); } catch (IOException e) { System.out.println("ERROR: " + e); }

7 7 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 {... }

8 8 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; }

9 9 Olioiden tallentaminen – ObjectOutputStream try { File file = new File(fileName); FileOutputStream outStream = new FileOutputStream(file); 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(); } catch (IOException e) { System.out.println("ERROR: " + e); }

10 10 Olioiden lukeminen – ObjectInputStream try { File file = new File(fileName); FileInputStream inStream = new FileInputStream(file); 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 (IOException e) { System.out.println("ERROR: " + e); } catch (ClassNotFoundException e) { System.out.println("ClassNotFnd: " + e); }

11 11 Työskentely ilman BlueJ- ympäristöä main-metodin käyttö suoritus komentoriviltä parametrien antaminen

12 12 main-metodi Mikäli Java-ohjelmia halutaan suorittaa komentoriviltä, tulee ajettavaan lähdekooditiedostoon luoda main-metodi: main-metodissa luodaan tarvittava(t) olio(t) Komentoriviparametrit tulevat main-metodin parametrina olevaan taulukkoon public static void main(String[] args) { // Käytettävien olioiden luonti }

13 13 main-metodi - esimerkki public class TestApp { public TestApp(String name) { System.out.println("Hello " + name + "!"); } public static void main(String[] args) { if (args.length==0) System.out.println("Usage:\njava TestApp text"); else { TestApp newApp = new TestApp(args[0]); }

14 14 Koodin kääntäminen komentoriviltä Ennen kääntämistä ja ohjelman suorittamista tulee tarkastaa että CLASSPATH- ympäristömuuttujassa on määritettynä sopiva luokkien hakupolku CLASSPATH-muuttujaan tulee lisätä aLibrary:n polku, jos käytetään aLibrary- kirjastoa Windowsissa: set – näyttää nykyiset ympäristömuuttujat set CLASSPATH=”.;c:\java2002;c:\bluej\lib” – asettaa uuden

15 15 Koodin kääntäminen ja ajaminen Yksittäisen MyClass.java-tiedoston kääntäminen onnistuu: javac MyClass.java Käännöksen jälkeen ajaminen: java MyClass Ajamisen yhteydessä voidaan välittää komentoriviparametreja: java MyClass parametri1 parameteri2...

16 16 JavaDoc ohjelmakoodin dokumentoinnin apuväline

17 17 JavaDoc Ohjelmakoodiin voi sijoittaa kommentteja, joista JavaDoc osaa tehdä html-muotoisen dokumentaation Dokumentaatio on ulkoasultaan ja toiminnallisuudeltaan samanlainen kuin Javan oman API:n dokumentaatio Kommenteissa pitää käyttää ns. tageja joita JavaDoc ymmärtää

18 18 JavaDoc Kommentti sijoitetaan ennen luokkaa, metodia tai attribuuttia: /** * Tämä luokka arpoo lottorivin */ Kommentin sisällä voi olla @-merkillä alkavia tageja

19 19 JavaDoc-tagit @author Tekijä @version Versionumero @param parametrin_nimi Kuvaus @return Kuvaus paluuarvosta Kommenteissa voi käyttää halutessaan HTML-koodia.

20 20 JavaDoc -käyttö HTML-dokumentaatio saadaan komennolla javadoc lähdetiedosto.java JavaDoc: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

21 21 JavaDoc - esimerkki /** * Malliluokka, jossa esitellään JavaDoc: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 pestMethod(String name) { /* … */ } }


Lataa ppt "1 DataOutputStream ja DataInputStream DataOutputStream:lla voidaan tallentaa perustietotyyppien arvoja binäärimuotoiseen tiedostoon DataInputStream:lla."

Samankaltaiset esitykset


Iklan oleh Google