Käyttäjän työkalut

Sivuston työkalut


java:tiedostot

Tiedostonkäsittelyä

Javan tutoriaalissa on käsitelty hyvin tiedostonkäsittelyä sivulla http://java.sun.com/docs/books/tutorial/essential/io/index.html.

Seuraavassa tärkein, eli miten kirjoitetaan jotain tiedostoon ja luetaan tiedot samasta tiedostosta pois.

import java.io.*;
 
/* Ohjelma kysyy käyttäjältä nimen, kokonaisluvun ja desimaaliluvun.
   Tiedot talletetaan tiedostoon muistio.txt.
   Sen jälkeen tiedot luetaan tiedostosta. */
 
public class TiedostoonJaPois {
       public static void main(String[] args) throws IOException {
 
        String TIEDOSTO="muistio.txt"; //tiedoston nimi
	//Avataan tiedosto
        DataOutputStream out = new DataOutputStream(new FileOutputStream(TIEDOSTO));
        BufferedReader lukija =  new BufferedReader(new InputStreamReader(System.in));
 
        String nimi;
        int kluku;
        double dluku;
 
	//Kysytään tiedot käyttäjältä
 
        System.out.print("Anna nimesi:");
        nimi =  lukija.readLine();
 
        System.out.print("Anna kokonaisluku:");
        kluku = Integer.parseInt(lukija.readLine());
 
        System.out.print("Anna desimaaliluku:");
        dluku = Double.parseDouble(lukija.readLine());
 
	//Kirjoitetaan tiedot tiedostoon
 
        out.writeChars(nimi);
        out.writeChar('\t'); //laitetaan sarkain erottamaan tiedot
        out.writeInt(kluku);
        out.writeChar('\t'); //laitetaan sarkain erottamaan tiedot
        out.writeDouble(dluku);
        out.writeChar('\n');  //laitetaan lopuksi rivinvaihto
 
        out.close(); //suljetaan tiedosto
 
        // luetaan tiedot
 
        DataInputStream in = new DataInputStream(new FileInputStream(TIEDOSTO));
 
        String luettunimi = "";
        int luettukluku = 0;
        double luettudluku = 0.0;
        StringBuffer apuri;
 
        try {
		//Nimi pitää lukea merkki merkiltä sarkaimeen asti
                char merkki;
                apuri = new StringBuffer(20);
                while ((merkki=in.readChar())!='\t')
                      luettunimi+=merkki;
 
                luettukluku = in.readInt();
                in.readChar();       // poistetaan sarkain
 
                luettudluku = in.readDouble();
        } catch (EOFException e) {}
 
        System.out.println(luettunimi);
        System.out.println(luettukluku);
        System.out.println(luettudluku);
 
        in.close();
    }
}

Tehtäviä

java/tiedostot.txt · Viimeksi muutettu: 2015/08/13 16:36 / 127.0.0.1