Announcement

Collapse
No announcement yet.

Data / Buffer / File Outstream Inputstream

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Data / Buffer / File Outstream Inputstream

    hallo, bin nur hier im Forum und Anfänger im Java coden. Bitte nicht zu streng mit mir sein. Coden hab ich mir sagen lassen ist speziell am Anfang eine mühsame Geschichte

    2 kleine Fragen hätte ich

    1.) hallo, folgendes Programm wirft mir eine Exeption das ich eine Exeption schon gefangen habe. Habe ich aber nicht ... denk ich jedenfalls wenn ich sie weg lasse funktioniert das Programm ganz normal

    Code:
    package streamsdemo;
    
    import java.io.*;
    
    public class StreamsDemo {
    
        public static void main(String[] args) {
    
            String dateiName = "data.bin";
            schreiben(dateiName);
            lesen(dateiName);
        }
    
        private static void schreiben(String dateiName) {
            try (DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(dateiName)))) {
                String name = "Klaus";
                int alter = 42;
                double größe = 1.82;
                out.writeUTF(name);
                out.writeInt(alter);
                out.writeDouble(größe);
    
            } catch (FileNotFoundException ex) {
                System.out.println("Problem " + ex.getMessage());
            } catch (IOException ex) {
                System.out.println("Problem " + ex.getMessage());
            }
        }
    
        private static void lesen(String dateiName) {
            try (DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream(dateiName)))) {
                String name = in.readUTF();
                int alter = in.readInt();
                double größe = in.readDouble();
    
                System.out.println(name + " ist " + alter + " Jahre alt und " + größe + "m groß.");
    
            } catch (IOException ex) {
                System.out.println("Problem" + ex.getMessage());
            } catch (FileNotFoundException ex) {  //  Fehlermeldung hier java.io.FileNotFoundException has already been caught
                System.out.println("Problem " + ex.getMessage());
    
            }
        }
    }
    Ausgabe:
    Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - exception java.io.FileNotFoundException has already been caught
    at streamsdemo.StreamsDemo.lesen(StreamsDemo.java:31)
    at streamsdemo.StreamsDemo.main(StreamsDemo.java:11)
    Java Result: 1
    2.) Kleine Nebenfrage ... hätte mir das mit dem Dateien einlesen schreiben schwerer vorgestellt. Ist es immer die gleiche Verkettung von diesen 3 Blöcken um Daten zu schreiben bzw zu lesen ? Hätte mir das komplizierter vorgestellt.

    datastream: Bietet mir die Methoden um Daten in den Buffer zu lesen bzw zu schreiben. Hier schalte und walte ich meines Amtes ... die anderen 2 kommenden werden nur brain AFK reinkopiert und tun ihren Dienst .... ?
    buffer: Puffert das ganze für einen konstanten Datenstrom
    filestream: Schreibt liest in Ordner Netzlaufwerken Datenbanken ... etc

  • #2
    http://docs.oracle.com/javase/7/docs...Exception.html

    Die Klasse FileNotFoundException ist von IOException abgeleitet. Damit das du diese fängst, fängst du auch eine IOException. Somit ist das zusätzliche fangen vom IOException "doppelt gemoppelt"

    Man liest und schreibt Dateien üblicherweise nicht mehr mit DataOutputStream. Man schreib die Daten in eine Textdatei oder nutzt Poperties oder in eine XML-Datei. Hier werden die Daten nativ gespeichert. Das ist meistens nicht gewollt. Aber es gibt die Klasse und du kannst sie verwenden.
    Zuletzt editiert von Christian Marquardt; 05.09.2012, 22:06.
    Christian

    Comment


    • #3
      okay danke wieder was gelernt 2 Sachen wundern mich aber

      wollte gerade schreiben das da aber was nicht passt weil ich in der schreiben() Methode den Fehler nicht bekommen .... da hats klick gemacht. Da catche ich als erstes FileNotFoundException und dann erst IOExeption ... danke danke danke grrrrr paar Kleinigkeiten verändert und schon hat man die roten verhassten Kringellinien Ich hoffe das hört irgendwann mal auf das man die nicht mehr so oft sieht ^^

      Comment


      • #4
        Das hört nie auf
        .....neues Framework neue Kringel
        .....neue Javaversion neue Kringel (Warnungen)
        ....wenn man dann älter wird, vertippt man sich, weil die Finger zittern, neue Kringel

        Letztlich sind sie nützlich zu einer ersten Kontrolle bei der Eingabe
        Christian

        Comment

        Working...
        X