RandomAccessFile(File, String) erstellt datei?!

Status
Nicht offen für weitere Antworten.

norman

Top Contributor
Hallo zusammen,

zwar ist das "problem" nicht besonders akut, aber dennoch wundert es mich. habe jetzt xmal den text der api zu RandomAccesFile gelesen, aber bin immernoch nicht darauf gestoßen, dass mit dem konstruktor das übergebene file-objekt tatsächlich auf dem datenträger erstellt wird.
Creates a random access file stream to read from, and optionally to write to...
okay, ich dachte mir also, wenn er einen Strom zum lesen und/oder schreiben erstellen will geht das natürlich nur, wenn eine Datei existiert. also legt er sie folglich an. warum wirft die methode (oder besser: der konstruktor) dann aber eine FileNotFoundException, wenn die datei doch erstellt wird, falls sie noch nicht vorhanden ist?

ich check das net ???:L

grüße

[add:]
Code:
	public static void main(String args[]) {
		try {
			File f = new File("C:\\temp\\test.txt");
			RandomAccessFile raf = new RandomAccessFile(f, "rw");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}
 

Murray

Top Contributor
Siehe java.sun.com/j2se/1.5.0/docs/api/java/io/RandomAccessFile.html#RandomAccessFile(java.io.File,%20java.lang.String)]
Throws:
FileNotFoundException - if the mode is "r" but the given file object does not denote an existing regular file, or if the mode begins with "rw" but the given file object does not denote an existing, writable regular file and a new regular file of that name cannot be created, or if some other error occurs while opening or creating the file

Also: da der Mode "rw" ist, gibt es zwei Möglichkeiten:
1. c:\temp\test.xml existiert nicht und kann auch nicht erzeugt werden (weil man z.b. keine Schreibrechte für das entsprechende Verzeichnis hat, oder weil das Verzeichnis nicht existiert)
2. c:\temp\test.xml existiert, kann aber nicht geöffnet werden (weil die Datei z.B. von einer anderen Applikation exklusiv geöffnet wurde)

Ich tippe mal auf den ersten Fall; gibt es das Verzeichnis c:\temp denn überhaupt?
 

byte

Top Contributor
RandomAccessFile liefert Dir RandomAccess auf ein File. Die Datei muss dazu natürlich existieren. Wie willst Du denn von einer Datei lesen oder in eine Datei schreiben, die gar nicht existiert? :roll:

Wenn Du also in eine neue Datei schreiben willst, dann musst Du das File vorher erst erzeugen:

Code:
File f = new File("C:/temp/test.txt");
if(!f.exists()) {
  f.createNewFile();
}

PS: Benutze lieber / als Seperator anstatt \\.
 

norman

Top Contributor
nein, ihr habt mein problem nicht verstanden:

@byto: ich muss vorher die datei eben NICHT erzeugen. das ist es ja, was mich wundert...

c:\temp\test.txt wurde mit dem bisschen code von oben korrekt erstellt. aber ich habe nirgends den befehl dazu geschrieben..
 

norman

Top Contributor
Murray hat gesagt.:
Also: da der Mode "rw" ist, gibt es zwei Möglichkeiten:
1. c:\temp\test.xml existiert nicht und kann auch nicht erzeugt werden (weil man z.b. keine Schreibrechte für das entsprechende Verzeichnis hat, oder weil das Verzeichnis nicht existiert)
2. c:\temp\test.xml existiert, kann aber nicht geöffnet werden (weil die Datei z.B. von einer anderen Applikation exklusiv geöffnet wurde)

Ich tippe mal auf den ersten Fall; gibt es das Verzeichnis c:\temp denn überhaupt?

naja, bei mir wurde keine FNFException geworfen.
meine frage ist ja eigentlich, warum die methode eine werfen kann, wenn sie doch die datei erstellt, sollte sie nicht vorhanden sein. tritt ein fehler beim erstellen auf, wäre doch eine IOException oder SecurityException sinnvoller?
(und warum sie die datei überhaupt erstellt, denn in der api kann ich das so nicht lesen)

grüße

(sry für 2x antwort)
 

byte

Top Contributor
Oh, war mir nicht bekannt. Ist ja ne super Komfortfunktion, dass er die Datei dann erzeugt! ;)

Aber Murray hats ja dann schon erklärt und es steht ja auch (bei näherem Hinsehen) in der API erklärt:

FileNotFoundException - if the mode is "r" but the given file object does not denote an existing regular file, or if the mode begins with "rw" but the given file object does not denote an existing, writable regular file and a new regular file of that name cannot be created, or if some other error occurs while opening or creating the file


Edit: Nach nochmaligem Lesen hast Du recht, die Exception ist unsinnig. :shock:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J File, RandomAccessFile File wird größer Java Basics - Anfänger-Themen 8
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
N Randomaccessfile Java Basics - Anfänger-Themen 2
G Wie gebe ich einen Dateipfad in RandomAccessFile an? Java Basics - Anfänger-Themen 2
S TextArea, RandomAccessFile, Apend und andere Tricks... Java Basics - Anfänger-Themen 7
R RandomAccessFile verständnis Problem Java Basics - Anfänger-Themen 10
D RandomAccessFile Java Basics - Anfänger-Themen 2
P RandomAccessFile writeInt() und writeChar() Java Basics - Anfänger-Themen 3
L RandomAccessFile liest nicht alle Zeichen Java Basics - Anfänger-Themen 3
D Erste Schritte RandomAccessFile "Leerzeichen" löschen Java Basics - Anfänger-Themen 6
F Kann RandomAccessFile Zip Datei lesen? Java Basics - Anfänger-Themen 14
B Klassen RandomAccessFile Java Basics - Anfänger-Themen 7
B Collections RandomAccessfile & Linkedlist Java Basics - Anfänger-Themen 4
M Frage zur Klasse RandomAccessFile Java Basics - Anfänger-Themen 8
cosmic Frage zu der RandomAccessFile Klasse Java Basics - Anfänger-Themen 6
K RandomAccessFile Java Basics - Anfänger-Themen 4
T RandomAccessFile - Wie schreibe ich etwas in eine txt Datei? Java Basics - Anfänger-Themen 5
C RandomAccessFile vs. Streams Java Basics - Anfänger-Themen 5
D text dateien mit RandomAccessFile manipulieren Java Basics - Anfänger-Themen 6
T RandomAccessFile und der Dateipfad Java Basics - Anfänger-Themen 2
J RandomAccessFile löschen Java Basics - Anfänger-Themen 2
M RandomAccessFile Java Basics - Anfänger-Themen 3
G RandomAccessFile, FileChannel, MappedByteBuffer Java Basics - Anfänger-Themen 12
P Datei mit RandomAccessFile einlesen Java Basics - Anfänger-Themen 14
M RandomAccessFile schreibt Sonderzeichen vor String Java Basics - Anfänger-Themen 2
R RandomAccessFile mit anderen Streams verbinden Java Basics - Anfänger-Themen 5
J RandomAccessFile schreibt falsch Java Basics - Anfänger-Themen 2
G RandomAccessFile Java Basics - Anfänger-Themen 20
R RandomAccessFile Java Basics - Anfänger-Themen 4
R RandomAccessFile und ObjectoutputStream Java Basics - Anfänger-Themen 2
T RandomAccessFile erzeugt seltsame Zeichen Java Basics - Anfänger-Themen 2
P RandomAccessFile Java Basics - Anfänger-Themen 2
L RandomAccessFile und readChar readByte Java Basics - Anfänger-Themen 2
D konvertierungsprobleme bei RandomAccessFile Java Basics - Anfänger-Themen 4
L RandomAccessFile - Prob Java Basics - Anfänger-Themen 4
B RandomAccessFile Java Basics - Anfänger-Themen 12
M RandomAccessFile liest nur jeden zweiten Wert aus! Java Basics - Anfänger-Themen 8
G RandomAccessFile Java Basics - Anfänger-Themen 2
O RandomAccessFile komisch zeichen Java Basics - Anfänger-Themen 7
A RandomAccessFile Java Basics - Anfänger-Themen 7
B String in ein RandomAccessFile einfügen (bestimmte Position) Java Basics - Anfänger-Themen 4
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
R File.pathSeparator und File.separator Java Basics - Anfänger-Themen 46
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
izoards Prunsrv - Windows Service - .bat file starten Java Basics - Anfänger-Themen 84
I File Uploader... Statusanzeige, Berechnung des Status etc. Java Basics - Anfänger-Themen 0
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
G jar file lässt sich nicht öffnen Java Basics - Anfänger-Themen 1
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
J File length als Prüfwert für Download Java Basics - Anfänger-Themen 5
berserkerdq2 Überprüfen ob eine Schreibberechtigung auf ein file exisitert bzw. ob man dieses file löschen kann, wie? Java Basics - Anfänger-Themen 9
berserkerdq2 IOstreams, was unterscheidet file von z. B. BufferedWriter? Java Basics - Anfänger-Themen 11
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
A java jar-File Java Basics - Anfänger-Themen 1
E Executable jar file fehler Java Basics - Anfänger-Themen 9
I Upload File zu einem Webservice Java Basics - Anfänger-Themen 17
I ZIP File erstellen Java Basics - Anfänger-Themen 10
LeoDerKek Textdatei in JAR-File Java Basics - Anfänger-Themen 4
Tom/S File Java Basics - Anfänger-Themen 10
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
A Checkstyle - File contains tab characters Java Basics - Anfänger-Themen 2
H Java file nicht gefunden Java Basics - Anfänger-Themen 5
C File speichern Java Basics - Anfänger-Themen 5
C Runnable Jar-File erzeugen Java Basics - Anfänger-Themen 14
C Pfad zu Properties-File bei ResourceBundle Java Basics - Anfänger-Themen 7
F GSON file mit einer List erstellen Java Basics - Anfänger-Themen 2
rafi072001 Lesen aus einem Excel File Java Basics - Anfänger-Themen 10
C Bild in executable JAR File mitgeben Java Basics - Anfänger-Themen 5
K File (png) in Image laden Java Basics - Anfänger-Themen 3
B Inputstream in file schreiben? Java Basics - Anfänger-Themen 23
S Input/Output Reader/Writer finden file nicht Java Basics - Anfänger-Themen 3
T Buffered Stream leert Txt File Java Basics - Anfänger-Themen 3
A 2d Arrays aus txt.file einlesen Java Basics - Anfänger-Themen 16
Dimax In Java File (nicht in Java Projekt) mysql Driver importieren Java Basics - Anfänger-Themen 3
K File wird in der .Jar nicht gefunden Java Basics - Anfänger-Themen 3
E TXT FILE EINLESEN Java Basics - Anfänger-Themen 4
Trèfle EXCEL-File Laufwerkunabhängig einbinden. Java Basics - Anfänger-Themen 1
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
B Hilfe bei InputStream To File Java Basics - Anfänger-Themen 22
topi relativer Pfad in einem Runnable JAR file Java Basics - Anfänger-Themen 12
A jar File kleiner bekommen Java Basics - Anfänger-Themen 3
B File öffnen in src/main/webapp Java Basics - Anfänger-Themen 4
K File-Name Vergleich Java Basics - Anfänger-Themen 2
krgewb Runnable JAR File Export Java Basics - Anfänger-Themen 11
S Maxium aus einer File finden Java Basics - Anfänger-Themen 12
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
D Input/Output File exists canRead canWrite Java Basics - Anfänger-Themen 11
B cal4j - Error at line 1:Unexpected end of file Java Basics - Anfänger-Themen 0
P jar file lässt sich nicht ausführen Java Basics - Anfänger-Themen 4
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
F File von Windowsfreigabe laden Java Basics - Anfänger-Themen 1
S java.nio.file.FileSystemException bei Dateizugriff vermeiden Java Basics - Anfänger-Themen 7
Vince42 NIO File Tree in XML umwandeln Java Basics - Anfänger-Themen 10
J Zweidimensionales Array in CSV File exportieren Java Basics - Anfänger-Themen 3
E War-File Problem mit Eclipse Java Basics - Anfänger-Themen 3
B Excel File einlesen und Überschrift prüfen Java Basics - Anfänger-Themen 8
M Email versenden Outlook, attached File, ohne Anmeldung Java Basics - Anfänger-Themen 4
M Input/Output Word File Kopieren Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben