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

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

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

8. Näppäimistöltä lukeminen 8.1

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

14. Poikkeukset 14.1

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

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

14. Poikkeukset 14.1

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

8. Näppäimistöltä lukeminen 8.1

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

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

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

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

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Metodien tekeminen Javalla

Java-kielen perusteita

Tietokannat II -kurssin harjoitustyö

16. Javan omat luokat 16.1

Pakkauksen kokoaminen

Ohjelmoinnin perusteet Y Python

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

17. Javan omat luokat 17.1

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Mikä yhteyssuhde on?

7. Näytölle tulostaminen 7.1

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

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

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

Ohjelmoinnin perusteet Y Python

20. Javan omat luokat 20.1

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

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

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

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

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

Ohjelmointi 2 / 2010 Välikoe / 26.3

Luokat ja oliot. Ville Sundberg

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

5. HelloWorld-ohjelma 5.1

Ohjelmoinnin perusteet Y Python

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Standardi- ja tietorakenneluokkia

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

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Olio-ohjelmointi Javalla

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

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

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Pakkauksen kokoaminen

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

Ohjelmointityö 3. Mikko Laamanen

Harjoitus 5 (viikko 48)

Java-kielen perusteet

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

Olio-ohjelmointi Virhetilanteiden käsittely

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

Poikkeustenkäsittely

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

1. Omat operaatiot 1.1

1 Tehtävän kuvaus ja analysointi

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

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Sarjallistaminen. Juha Järvensivu 2007

17. Javan omat luokat 17.1

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

9. Periytyminen Javassa 9.1

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

Taulukoiden käsittely Javalla

Ohjelmoinnin peruskurssi Y1

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

Ohjelmoinnin perusteet Y Python

9. Periytyminen Javassa 9.1

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

Mitä poikkeuskäsittely tarkoittaa?

Rajapinta (interface)

Ohjelmoinnin jatkokurssi, kurssikoe

Listarakenne (ArrayList-luokka)

Ohjelmoinnin perusteet Y Python

public static void main (String [] args)

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

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

11. Javan valintarakenteet 11.1

Ohjelmoinnin perusteet, syksy 2006

Rinnakkaisohjelmointi, Syksy 2006

Java ja grafiikka. Ville Sundberg

Ohjelmointi 2, välikoe

5. HelloWorld-ohjelma 5.1

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

7. Oliot ja viitteet 7.1

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

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

Javan GUI Scratchaajalle

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

Harjoitus 4 (viikko 47)

Ohjelmoinnin perusteet, kurssikoe

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

11. Javan valintarakenteet 11.1

Metodien tekeminen Javalla

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

Transkriptio:

6. Tiedostot 6.1

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

Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöteja tulostusvirtojen avulla. Tiedostoja voidaan käyttää myös ohjelmasta käsin. Tutustutaan tekstitiedostojen lukemiseen ja kirjoittamiseen io ja util-pakkausten luokkien avulla. Javan versiosta 1.5 alkaen kirjoittamiseen käytettävissä myös util-pakkauksen Formatter-luokka, jonka käyttö vaatii tarkkuutta. import java.io.*; ja import java.util.*;. Lukeminen ja kirjoittaminen tapahtuu vaiheittain: avataan, luetaan tai kirjoitetaan, suljetaan. Java pakottaa virheenkäsittelyyn try-catch-lauseella. 6.3

Avaaminen ja lukeminen Tiedoston avaaminen lukemista varten. Luodaan tiedosto-olio File-luokasta: File tiedostoolionnimi = new File(tiedostonNimi); Liitetään Scanner-luokan lukija tiedostoon: Scanner lukija = new Scanner(tiedostoOlionNimi); Tekstitiedostoa luetaan riveittäin hasnextline- ja nextlineoperaatioiden avulla. Esimerkiksi: while (lukija.hasnextline ()) { String rivi = puskuroitulukija.nextline(); 6.4

Rivien käsittely Usein yhdellä rivillä on useampia jollakin merkillä (esimerkiksi pilkku tai välilyönti) erotettuja tietoja, jotka voivat vieläpä olla eri tyyppisiä. String-luokan split-operaatio on tässä tilanteessa hyödyllinen se pilkkoo rivi osiinsa. Esimerkiksi: String rivi = "this is a test"; String[] osat = rivi.split("[ ]"); for (int i = 0; i < osat.length; i++) { System.out.println(osat[i]); 6.5

Sulkeminen lukemisen jälkeen Tiedoston lukemisen jälkeen siihen liitetty lukija suljetaan close-operaatiolla. Esimerkiksi: lukija.close(); Tiedoston avaamisen, lukemisen tai sulkemisen yhteydessä voi tapahtua poikkeus. Tämän vuoksi Java pakottaa sulkemaan useimmat tiedostonkäsittelyyn liittyvät lauseet try-catch-lauseen sisään. 6.6

Esimerkki import java.io.*; import java.util.*; public class Lukeminen1 { public static void main(string[] args) { String TIEDNIMI = "in.txt"; try { // Luodaan tiedosto-olio. File tiedosto = new File(TIEDNIMI); // Luodaan lukija. Scanner lukija = new Scanner(tiedosto); // Luetaan ja tulostetaan rivit. while (lukija.hasnextline()) { String rivi = lukija.nextline(); System.out.println(rivi); // Suljetaan lukija. lukija.close(); catch (FileNotFoundException e) { System.out.print("Tiedosto hukassa!"); catch (Exception e) { System.out.print("Lukuvirhe!"); 6.7

Esimerkki import java.io.*; while (puskuroitulukija.ready()) { public class Lukeminen2 { String rivi = puskuroitulukija.readline(); public static void main(string[] args) { System.out.println(rivi); String TIEDNIMI = "in.txt"; try { puskuroitulukija.close(); FileInputStream syotevirta = new FileInputStream(TIEDNIMI); catch (FileNotFoundException e) { InputStreamReader lukija = System.out.print("Tiedosto hukassa!"); new InputStreamReader(syotevirta); BufferedReader puskuroitulukija = catch (Exception e) { new BufferedReader(lukija); System.out.print("Lukuvirhe!"); 6.8

Avaaminen kirjoittamista varten 1) Luodaan tiedosto-olio File-luokasta: File tiedostoolionnimi = new File(tiedostonNimi); 2) Liitetään FileOutputStream-tulostusvirta ohjelmasta tiedostoon: FileOutputStream virtaolionnimi = new FileOutputStream(tiedostoOlionNimi); 6.9

Kirjoittaminen Tulostusvirtaan kirjoittamiseen tarvitaan kirjoittajaolio PrintWriter-luokasta. Yleisesti: PrintWriter kirjoittajaolionnimi = new PrintWriter(virtaOlionNimi, true); Kirjoittaminen tapahtuu PrintWriter-luokan print- ja printlnoperaatioiden avulla. Nämä operaatiot on kuormitettu kuten System.outattribuutin kautta kutsuttavat operaatiot, jotka tulostavat esimerkiksi lukuja ja merkkijonoja. 6.10

Sulkeminen kirjoittamisen jälkeen Tiedoston kirjoittamisen jälkeen siihen liitetty syötevirta suljetaan kirjoittajan close-operaatiolla. Myös kirjoittamisen yhteydessä voi tapahtua poikkeus: tarvitaan poikkeuksen käsittelyä try-catch-lauseen avulla. 6.11

Tiedostot: esimerkki import java.io.*; // Luodaan virtaan kirjoittaja public class Kirjoittaminen { PrintWriter kirjoittaja = public static void main(string [] args) { new PrintWriter(tulostusvirta, true); final String TIEDNIMI = "out.txt"; // Kirjoitetaan tiedostoon final int HEIPPALKM = 10; for (int i = 0; i < HEIPPALKM; i++) { try { // Luodaan tiedosto-olio File tiedosto = new File(TIEDNIMI); // Luodaan tulostusvirta ja // liitetään se tiedostoon FileOutputStream tulostusvirta = new FileOutputStream(tiedosto); kirjoittaja.println("heippa " + i); // Suljetaan tiedosto kirjoittaja.close(); catch (IOException e) { System.out.println(e); 6.12