Erste Schritte Einlesen / Auslesen funktioniert nicht

supertux

Mitglied
Hallo Leute , ich spiele mich gerade mit diversen Tutorials herum und hab mal eines nachgemacht zum Thema Ein und auslesen von Dateien (video2brain) .



Allerdings habe ich folgendes Problem nachdem ich ein Beispiel nachgebaut habe.
Augenscheinlich ist es 1:1 mit dem Videobeispiel übereinstimmend. Ich bekomme auch keine compiler Fehler aber weder das erstellen der Datei noch das Auslesen der Datei (klar wenn er nichts erstellt gibts nichts zu lesen)

funktioniert -.-


Eventuell seht ihr ja den Fehler an dem ganzen?

Java:
package DatenLesen;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class StreamDemo {

	public static void main(String[] args) {
		String dateiName = "streamtest.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.write(alter);
			out.writeDouble(größe);
		} catch (FileNotFoundException ex) {
			// TODO: handle exception
			System.out.println("Problem: " + ex.getMessage());
		} catch (IOException ex) {
			System.out.println("Fehler 1" + 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();
		}
		catch(FileNotFoundException ex) {
			System.out.println("Fehler 2: "+ex.getMessage());
		}
		catch (IOException ex){
			
			System.out.println("Fehler3:" + ex.getMessage());
		}
	}

}
 
Zuletzt bearbeitet:

Jango

Gesperrter Benutzer
Hast du das:

Java:
package DatenLesen;
nur so abgeschrieben, oder gibts das bei dir wirklich?
 

Michael...

Top Contributor
Grundsätzlich finde ich es grenzwertig in Tutorial einen solchen Umgang mit Exceptions zu zeigen. Meiner Meinung sollte bei einer Exception immer der komplette StackTrace ausgegeben werden.

Zweiter Schwachpunkt des Tutorials (falls es auch so gezeigt wurde): Der Stream wird nach dem Schreiben nicht geschlossen, hier fehlt ein
Code:
close()

Ein weiterer Fehler liegt darin (vermutlich falsch abgeschrieben), dass beim Schreiben des Alters nur
Code:
write
statt
Code:
writeInt
verwendet wird. Während write(int) nur ein Byte in den Stream schreibt werden bei writeInt vier Bytes geschrieben. Umgekehrt ist es beim Lesen genause readInt() liest vier Bytes, d.h. in Deinem Fall bleiben für readDouble() nicht genügend Bytes zur Verfügung.
 
B

buzz!dev

Gast
Zeile 28/44:
Java:
out.write(alter);
Java:
int alter = in.readInt();
 

supertux

Mitglied
woher weißt du das es nicht funktioniert?
Naja laut Video wird ein File angelegt... Das File kann ich irgendwie nirgends finden obwohl ja eines angelegt werden müsste nachdem ich ja schreibe und hier kein Fehler auftritt beim Starten des Programms.


Beim Lesen bekomme ich dann natürlich eine IO exception weil das File noch nicht existiert.



Hast du das:

Java:
package DatenLesen;
nur so abgeschrieben, oder gibts das bei dir wirklich?

Das Package hab ich mir selbst angelegt das gibt es ^^, da liegt mein klassenfile drinnen .
 

supertux

Mitglied
Grundsätzlich finde ich es grenzwertig in Tutorial einen solchen Umgang mit Exceptions zu zeigen. Meiner Meinung sollte bei einer Exception immer der komplette StackTrace ausgegeben werden.



Zweiter Schwachpunkt des Tutorials (falls es auch so gezeigt wurde): Der Stream wird nach dem Schreiben nicht geschlossen, hier fehlt ein
Code:
close()

close() fehlt, ohne close nix los, besonders wenn Buffer mit im Spiel ist

Nein das ist hier kein Fehler, ich bin zwar nicht der try catch Profi (Hab mir vorher die Lehrvideos dazu angesehen und ein wenig damit rumgespielt, kann es aber noch nicht perfekt ) ... in der Art wie es hier angeschrieben ist schließt das try nach ausführung automatisch die Verbindung.

Wenn man ein" normales "try catch macht dann muss man die Verbindung auch wieder manuell schließen. (Fragt mich jetzt nicht nach den genauen details ^^ ich muss das ganze erst öfters anwenden um mehr im Kopf zu haben :D )

Ein weiterer Fehler liegt darin (vermutlich falsch abgeschrieben), dass beim Schreiben des Alters nur
Code:
write
statt
Code:
writeInt
verwendet wird. Während write(int) nur ein Byte in den Stream schreibt werden bei writeInt vier Bytes geschrieben. Umgekehrt ist es beim Lesen genause readInt() liest vier Bytes, d.h. in Deinem Fall bleiben für readDouble() nicht genügend Bytes zur Verfügung.

Ui , danke für den Tipp , das war wohl ein Tippfehler von mir beim autovervollständigen lassen da hatte eclipse mir diverse male einen Streich gespielt gehabt. Da habe ich beim Fehlersuchen x-mal darüber gelesen :( .

Nun läuft es durch und auch das lesen gibt keinen Fehler aus.
Auch die Ausgabe läuft super :) . Einzig was mich noch wundert... wo liegt das File? Bzw. Kann ich beim Dateinamen auch gleich den Pfad mit angeben?


Und danke an alle für die kompetente und schnelle Hilfe :)
 
Zuletzt bearbeitet von einem Moderator:

Michael...

Top Contributor
Das mit der neuen try catch Syntax und dem automatisch close() kann ich nicht beurteilen, dazu kenne ich Java 1.7 zu wenig.

Die Datei sollte relativ zu dem Verzeichnis liegen aus dem das Programm ausgeführt wurde. Grundsätzlich kann man bei einem FileOutputStream auch absolute Pfade angeben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
J Auslesen/speichern und wieder einlesen Java Basics - Anfänger-Themen 7
M textfeld auslesen und in liste einlesen Java Basics - Anfänger-Themen 2
J Dateien aus Ordner auslesen bzw. einlesen Java Basics - Anfänger-Themen 4
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
G JTree speichern und wieder einlesen Java Basics - Anfänger-Themen 5
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
S SeriellenPort einlesen Java Basics - Anfänger-Themen 3
I XML einlesen und Objekte bekommen Java Basics - Anfänger-Themen 2
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
julian0507 Wörter einlesen lassen und rückwärts ausgeben Java Basics - Anfänger-Themen 7
S JSON einlesen und benutzen Java Basics - Anfänger-Themen 5
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
I Ical4j / Kalender einlesen von URL - Fehler: "Unparseable date" Java Basics - Anfänger-Themen 16
Saiko Zeilen einer Datei einlesen Java Basics - Anfänger-Themen 3
sserio Txt Datei einlesen Java Basics - Anfänger-Themen 9
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
M String beim einlesen formatieren Java Basics - Anfänger-Themen 12
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
G JSP Textfeld einlesen Java Basics - Anfänger-Themen 2
M Einlesen > new Leser Java Basics - Anfänger-Themen 5
W Werte durch Konsole einlesen Java Basics - Anfänger-Themen 10
A Array einlesen und ausgeben Java Basics - Anfänger-Themen 13
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
S Wort einlesen Array ausgeben Java Basics - Anfänger-Themen 4
A Input/Output Mehrere Csv-Dateien einlesen Java Basics - Anfänger-Themen 2
S CSV einlesen und mit Komma trennen Java Basics - Anfänger-Themen 12
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
I Java-Wort einlesen und ausgeben Java Basics - Anfänger-Themen 7
J Csv-Datei einlesen Java Basics - Anfänger-Themen 52
JD_1998 Arrays einlesen, zwischenspeichern und wieder ausgeben Java Basics - Anfänger-Themen 8
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
L Datein einlesen Java Basics - Anfänger-Themen 1
O zufälliges Wort aus einer Datei einlesen Java Basics - Anfänger-Themen 32
E Input/Output Datei anhand von Dateinamen einlesen Java Basics - Anfänger-Themen 5
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
A Input/Output Dateien einlesen und ausgeben Java Basics - Anfänger-Themen 7
A Klasse um daten zu einlesen Java Basics - Anfänger-Themen 26
A 2d Arrays aus txt.file einlesen Java Basics - Anfänger-Themen 16
A Textdatei mit stream einlesen Java Basics - Anfänger-Themen 2
P Datei einlesen und zurückgeben Java Basics - Anfänger-Themen 5
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3
M String in Scanner einlesen Java Basics - Anfänger-Themen 6
E TXT FILE EINLESEN Java Basics - Anfänger-Themen 4
M Einzelzeichen einlesen Java Basics - Anfänger-Themen 2
C (char) Array einlesen Java Basics - Anfänger-Themen 8
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
E Mehrere Eingabezeilen gleichzeitig einlesen Java Basics - Anfänger-Themen 7
B HTML Datei einlesen und HTML Code in String wandeln Java Basics - Anfänger-Themen 19
V Schleife für das Einlesen von Werten für int Variablen, die Bestandteil von Arrays sein sollen Java Basics - Anfänger-Themen 16
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
P Text Datei einlesen und übertragen Java Basics - Anfänger-Themen 15
E Einteilung der Räume mit einlesen einer .txt datei Java Basics - Anfänger-Themen 16
P Array einlesen von Konsole Java Basics - Anfänger-Themen 8
D Eingaben in String Array einlesen Java Basics - Anfänger-Themen 12
B CSV einlesen - Parameter a) encoding b) delimiter Java Basics - Anfänger-Themen 7
R Compiler-Fehler Einlesen von Konsolenparameter funtioniert nichtmehr Java Basics - Anfänger-Themen 4
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
J Einlesen von Datei funktioniert nicht Java Basics - Anfänger-Themen 8
H Einlesen Java Basics - Anfänger-Themen 8
H Einlesen von Zahlen Java Basics - Anfänger-Themen 20
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
CptK Datentypen Text Dateien einlesen Java Basics - Anfänger-Themen 3
A Datentypen Unterschiedliche Datentypen in einer Eingabe einlesen Java Basics - Anfänger-Themen 2
R txt Einlesen und Verarbeiten Java Basics - Anfänger-Themen 15
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
M Datei einlesen mit Scanner funktioniert nicht (FileNotFoundException) Java Basics - Anfänger-Themen 6
K Sonderzeichen einlesen Java Basics - Anfänger-Themen 3
L Input/Output XML Datei einlesen (JAXB?) Java Basics - Anfänger-Themen 10
F Zahlen aus Datei einlesen und in Array speichern Java Basics - Anfänger-Themen 2
I Datei einlesen Java Basics - Anfänger-Themen 11
J Best Practice [Code Verbesserung] TXT einlesen und in Arrayliste speichern Java Basics - Anfänger-Themen 5
A Ungeordnetes Array ordnen, Zahl einlesen und einordnen Java Basics - Anfänger-Themen 23
R Erste Schritte Sicheres einlesen eines Strings Java Basics - Anfänger-Themen 2
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
C Erste Schritte Regex - Datei einlesen und splitten Java Basics - Anfänger-Themen 4
T Input/Output Einlesen eines .txt Files nur bei gesetztem Breakpoint möglich Java Basics - Anfänger-Themen 1
L RSA Public Key einlesen Java Basics - Anfänger-Themen 0
K Datei aus unbekannten Speicherorten einlesen Java Basics - Anfänger-Themen 1
T Datei in Array einlesen "null" Java Basics - Anfänger-Themen 8
U Daten aus Datei einlesen Java Basics - Anfänger-Themen 4
N Datei Zeilenweise einlesen, Ausgabe mehrere Arrays Java Basics - Anfänger-Themen 7
B Excel File einlesen und Überschrift prüfen Java Basics - Anfänger-Themen 8
M Einlesen von Integerwertern aus einer CSV Java Basics - Anfänger-Themen 8
? Methoden Boolean Wert vergleichen und einlesen Java Basics - Anfänger-Themen 1
K String einlesen und als Variable speichern Java Basics - Anfänger-Themen 8
K .txt einlesen und in ein Array packen Java Basics - Anfänger-Themen 2
M Erste Schritte Zahlen einlesen und auswerten Java Basics - Anfänger-Themen 6
N Best Practice CSV einlesen - Variables Array?! Java Basics - Anfänger-Themen 8
O Klassen Objektnamen für Methodenaufrauf einlesen lassen Java Basics - Anfänger-Themen 2
D Array Werte einlesen und ausgeben? Java Basics - Anfänger-Themen 8
C Java Scanner einlesen von txt Dokument InputMismatch Java Basics - Anfänger-Themen 9
V Hilfe zum Thema einlesen eines Datums Java Basics - Anfänger-Themen 5
E Erste Schritte txt.Datei mit BufferedReader einlesen und in 2D-Array abspeichern Java Basics - Anfänger-Themen 15
S Werte in Array einlesen Java Basics - Anfänger-Themen 2
A Textdatei mit BufferedReader einlesen Java Basics - Anfänger-Themen 0
P Einlesen von Daten via BufferedReader Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben