Einfache Fragen zu Dateien

Status
Nicht offen für weitere Antworten.

ernst

Top Contributor
Hallo allerseits,
gerade beschäftige ich mich mit Dateien.
Deshalb habe ich dazu ein paar Fragen:

1)
Fall:
Man will in eine Datei etwas reinschreiben, wie z.B. das Zeichen (Byte) 'x'
Dann kann man dazu einige Wünsche haben, wie z.B:
- Daten ans Ende anfügen,
- überschreiben der Daten, auf deren Anfang der Dateizeiger gerade zeigt
- usw.
(in C kann man dazu entsprechende Flags setzen).

In meinem Beispiel (siehe unten) wird aber beim Beschreiben prinzipiell vorher der Inhalt der Datei gelöscht.
Fragen:
F1) Warum steht dazu nichts in der API-Doku von FileOutputStream?
F2) Wie kann ich meine o.g. Wünsche realisieren? Hängt das jeweils von der Klasse ab, oder gibt es dazu eine allgemeine Regel?

2)
Warum bekomme ich eine Fehlermeldung, wenn ich die Datei mit close() außerhalb des try-Blocks schließe (Beispiel siehe unten)?

3)
Was passiert, wenn man die Anweisung
mydatei.close();
nicht macht?

4) Muss man beim Beschreiben einer Datei einen möglichen Schreibfehler mit catch abfangen:
catch(IOException e){
System.out.println("Schreibfehler"+e.toString());
}
Wann könnte ein Schreibfehler auftreten (mir fällt nur "defekte Hardware" ein)

5)
Tritt eine Exception auf, wenn man beim Lesen einer Datei ans Dateiende kommt?
Ich denke, es wird keine Exception ausgelöst.
Ist das richtig?

mfg
Ernst


Code:
import java.io.*;

public class MainDatei1 {

	public static void main(String[] args) {
		// Aus Datei lesen
		File f = new File("C:\\test1.txt");
		int zeichen = 0;
		FileInputStream mydatei;		
		
		if(f.isFile()==true){
			System.out.println("Dies ist eine Datei");
		}
		else{
			System.out.println("Dies ist eine Datei");
		}
		

		try{
			mydatei = new FileInputStream(f);
			System.out.println("Dateiinhalt: ");			
			do{
				zeichen = mydatei.read();
				if(zeichen!=-1)
					System.out.print((char)zeichen);
				else
					System.out.println("");					
			}while(zeichen!=-1);
/*
FRAGE:
Was passiert, wenn man die Anweisung 
mydatei.close();
nicht macht?
*/
			
			mydatei.close();
		}
		catch(FileNotFoundException e){
			System.out.println("Datei nicht gefunden"+e.toString());
		}
		catch(IOException e){
			System.out.println("Lesefehler"+e.toString());
		}
		// Fehler:
		//mydatei.close();		
/*
FRAGE:
Warum gibt es eine Fehlermeldung, wenn man 
mydatei.close(); 
außerhalb des try-Brereichs implementiert ??? 
*/
		
			
/*
FRAGE:
Warum wird beim Beschreiben einer schon existierenden Datei
zuerst mal der Inhalt der Datei gelöscht?
Es wird also nichts angefügt oder ähnliches gemacht.
*/			

		
		
		// In Datei schreiben
		try{
			FileOutputStream mySchreibdatei = new FileOutputStream(f);
			System.out.println("In Datei scheiben ...");
			mySchreibdatei.write((int)'r');
			mySchreibdatei.write((int)'s');
			//mySchreibdatei.write((int)'z');			
			mySchreibdatei.close();
		}
		catch(FileNotFoundException e){
			System.out.println("Datei nicht gefunden"+e.toString());
		}
		catch(IOException e){
			System.out.println("Schreibfehler"+e.toString());
		}
		
		
		
	}
}
 

ernst

Top Contributor
2)
weil close eine Exception werfen kann

---
wenn ich close in ein try-catch einbette gibt es immer noch Probleme...
---

3)
dann wird die Datei nicht geschlossen
---
dann wird sie halt nicht geschlossen....:)-))
oder kann es da Probleme geben?
---

mfg
Ernst
 

ernst

Top Contributor
dann wird sie halt nicht geschlossen....:)-))
---
oder kann es da Probleme geben?[/quote]
Ja
---
welche?
Kannst du mir mal ein paar konkrete Beispiele geben, wo es Schwierigkeiten und Probleme gibt?

mfg
Ernst
 

Wildcard

Top Contributor
Einige Betriebsysteme (darunter Windows) installieren einen Lock wenn Dateien geöffnet werden und belassen ihn dort bis die Resource geschlossen wird.
 

ernst

Top Contributor
Wildcard hat gesagt.:
Einige Betriebsysteme (darunter Windows) installieren einen Lock wenn Dateien geöffnet werden und belassen ihn dort bis die Resource geschlossen wird.
---
Heißt das, dass selbst wenn das Java-Programm beendet ist, nicht mehr auf die durch das Java-Programm bearbeitete Datei z.B. mit dem Explorer zugegriffen werden kann? (kann ich mir nicht vorstellen)
Oder was hätte das (an einem konkreten Beispiel gezeigt) für konkrete negative Konsequenzen?

mfg
Ernst
 

Wildcard

Top Contributor
ernst hat gesagt.:
Heißt das, dass selbst wenn das Java-Programm beendet ist, nicht mehr auf die durch das Java-Programm bearbeitete Datei z.B. mit dem Explorer zugegriffen werden kann? (kann ich mir nicht vorstellen)
Unter Umständen.
Mach das Ding einfach zu und lass diesen Thread sterben.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Einfache Navigations-App schnell selber Programmieren? Bitte um Ideen und Anregungen. Allgemeine Java-Themen 17
J Einfache Sprachsteuerung Allgemeine Java-Themen 3
L Übergabe an eine eher einfache Java- Applikation wegen Kündigung Allgemeine Java-Themen 1
K Einfache Verkettete Liste mit Node Allgemeine Java-Themen 3
D RMI Einfache Chat-Anwendung mit RMI Allgemeine Java-Themen 0
L einfache Verzinsung mit for-Schleife & Ausschluss von Werten beim Einlesen Allgemeine Java-Themen 5
S Einfache Methode die Groesse eines Objekts zu ermitteln? Allgemeine Java-Themen 12
D einfache Filterung optimieren Allgemeine Java-Themen 16
M Einfache Kundenverwaltung, guter Programmierstil Allgemeine Java-Themen 3
S YUV to RGB (einfache Berechnung) Allgemeine Java-Themen 5
N einfache Klassen Allgemeine Java-Themen 18
M Schnelle Scriptsprache für einfache Funktionen? Allgemeine Java-Themen 5
R Einfache Matheaufgabe - Daten auf Anzeigebereich verteilen Allgemeine Java-Themen 4
E einfache grafische Oberfläche wie in MS C#? Allgemeine Java-Themen 6
V Einfache toString() generieren? Allgemeine Java-Themen 6
E einfache Frage zu Vector Allgemeine Java-Themen 8
E Einfache Frage zu ListIterator Allgemeine Java-Themen 10
E einfache Frage zu getRealPath(.) Allgemeine Java-Themen 2
E einfache Frage zu protected Allgemeine Java-Themen 10
E einfache Frage zu verdeckten Membern Allgemeine Java-Themen 2
Zrebna Fragen zu Testabdeckungs-Metriken Allgemeine Java-Themen 4
MarvinsDepression Unbekanntes Zeichen in fremden Code wirft Fragen auf Allgemeine Java-Themen 4
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
K BlueJ - Fragen zu dem Spiel Pacman (Nachprogrammieren) Allgemeine Java-Themen 141
V Ich hätte 2 Fragen Allgemeine Java-Themen 5
ME2002 Fragen aus einer Java Klausur Allgemeine Java-Themen 67
H Fragen zur Kraken Api Allgemeine Java-Themen 1
nonickatall Klassen Grundsätzliche Fragen zu geplanter Programmstruktur Allgemeine Java-Themen 5
W Ein paar Fragen zu .properties und .css Allgemeine Java-Themen 6
W Mal ein paar generelle Fragen zu InputStream und OutputStream Allgemeine Java-Themen 4
X Fragen zur Javamail API und Gmail Allgemeine Java-Themen 4
T Fragen bezgl. Lambdas Allgemeine Java-Themen 20
X Collections Fragen zu gleichen Elementen in TreeSet Allgemeine Java-Themen 35
A Neuerungen in Java 8 StreamAPI- Paar fragen Allgemeine Java-Themen 4
temi Fragen zur Software-Architektur Allgemeine Java-Themen 123
M Diverse Design-Fragen Allgemeine Java-Themen 6
J 2 Fragen zur Vererbung Allgemeine Java-Themen 5
H Java FX 2 Fragen um Programm in mehrere sprachen zu übersetzen in Gluon Framwork Allgemeine Java-Themen 3
M Fragen beantworten über Textfeldeingabe Allgemeine Java-Themen 5
D Grundsätzliche Fragen zum Heap Space Allgemeine Java-Themen 12
J Allgemeine Fragen zu Vererbung Allgemeine Java-Themen 1
M Allgemeine Fragen meinerseits Allgemeine Java-Themen 4
V Wie kann ich die Fragen mit den anderen Klassen verbinden? Allgemeine Java-Themen 1
J Fragen zu generischer doppelt verketteter Liste (bei fehlendem Grundverständnis) Allgemeine Java-Themen 1
R Es gibt keine dummen Fragen (hab ich mal gehört) Allgemeine Java-Themen 11
T Fragen zum Thread-Thema Allgemeine Java-Themen 4
2 2 Klein Fragen Allgemeine Java-Themen 7
alderwaran .jar Code Signing, User-Keystore und Fragen dazu Allgemeine Java-Themen 0
T Fragen zum Thread-Thema Allgemeine Java-Themen 9
A Java Theorie-Fragen Allgemeine Java-Themen 7
K Java QUIZ-Spiel Fragen und Antworten generieren?! Allgemeine Java-Themen 5
R Socket Fragen zu UDP Allgemeine Java-Themen 1
B Noob-Fragen zu Tablets und PC kompatiblität... Allgemeine Java-Themen 6
D Ein paar allgemeine Fragen zu Java Allgemeine Java-Themen 19
L Fragen für Facharbeit: Analyse von Strings in Java Allgemeine Java-Themen 4
R Fragen zu Server + UI Allgemeine Java-Themen 2
U Vier Fragen zu Java Allgemeine Java-Themen 2
H MediaManager Fragen/Probleme Allgemeine Java-Themen 6
D Fragen zum erstellen einer ausführbaren Jar Datei Allgemeine Java-Themen 3
C Polymorphie Fragen zur Annotations von Persistenz Allgemeine Java-Themen 2
O Fragen über Fragen - Bei Änderung XML-Datei -> Anpassung GUI Allgemeine Java-Themen 7
StrikeTom Java Performance Fragen Allgemeine Java-Themen 5
Luk10 Fragen zum ByteBuffer (lwjgl - icons) Allgemeine Java-Themen 2
F Akkumulator Hough-Transformation offene Fragen Allgemeine Java-Themen 4
Luk10 Fragen zu Naming-Conventions Allgemeine Java-Themen 5
Z Einige Fragen Allgemeine Java-Themen 10
T OOP Einige Fragen zu UML-Klassendiagrammen Allgemeine Java-Themen 6
G Einige Fragen zu ResourceBundles Allgemeine Java-Themen 2
S Fragen zu verschiedenen Themen vom JCreator Allgemeine Java-Themen 2
DStrohma Grundsätzliche Fragen zum Aufbau eines komplexeren Programmes Allgemeine Java-Themen 8
Semox Grapheneditor - Allgemeine Fragen zum Logikdesign Allgemeine Java-Themen 3
O kleine Fragen eines Anfängers Allgemeine Java-Themen 2
X Executor fragen ob fertig Allgemeine Java-Themen 13
nrg Swing 2 Fragen zu Swing/AWT Allgemeine Java-Themen 7
K Reflections Fragen Allgemeine Java-Themen 7
S Fragen zum SCJD-Zertifikat Allgemeine Java-Themen 2
M Backend Entwicklung - Konzept fragen Allgemeine Java-Themen 3
E Fragen zu Scala Allgemeine Java-Themen 11
Daniel_L Fragen zu RegEx und URL umwandeln Allgemeine Java-Themen 4
J Diverse Fragen bezüglich Jasper Allgemeine Java-Themen 3
S Fragen zum ShutdownHook Allgemeine Java-Themen 7
V Fragen zu einem Java Browser Allgemeine Java-Themen 7
G Fragen zum eigenen Scheduler Allgemeine Java-Themen 4
M Drag and Drop: 3 Fragen Allgemeine Java-Themen 3
L Einige Fragen zu Java Allgemeine Java-Themen 9
F Linguistische Fragen zu Javadoc bzw. Englisch Allgemeine Java-Themen 4
E Thread Fragen in Verbindung mit Swing Allgemeine Java-Themen 4
M MVC Design Pattern - Verständniss Fragen Allgemeine Java-Themen 3
X Einige Fragen zu Serialisierung Allgemeine Java-Themen 2
H Java Multiplicoice Test (10 Fragen) Allgemeine Java-Themen 11
J Viele Fragen. =) Hoffentlich könnt ihr helfen Allgemeine Java-Themen 9
D Grundsätzliche Fragen zur Grafikdarstellung in Spielen Allgemeine Java-Themen 2
J 2 Fragen zu JMF und eine Rechtsfrage Allgemeine Java-Themen 3
S Viele Fragen eines Umsteigers (von .NET) Allgemeine Java-Themen 6
C LinkedList Fragen Allgemeine Java-Themen 7
P Fragen zur JBuilder und den kosten. Allgemeine Java-Themen 7
reibi JVM fragen welche Apps geladen sind Allgemeine Java-Themen 7
I Fragen zum Internetseiten Einlesen/Auswerten Allgemeine Java-Themen 5
F Paket und Software Design Fragen. Allgemeine Java-Themen 5
S 2 Fragen allgemeine fragen zu final und interface Allgemeine Java-Themen 13

Ähnliche Java Themen


Oben