WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 17.12.2002, 03:12   #1
RaistlinMajere
Inventar
 
Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343


Standard java - erzeugen einer .txt-datei, in die geschrieben werden soll

grüzi mitanand!

folgende problemstellung:

ich möchte in ein bestehendes .txt file mit einem namen meiner wahl über java gewisse daten zeilenweise abspeichern. wie das geht, ist mir schon klar, problematisch ist nur, daß ich nicht weiß, wie ich es handlen soll, wenn die datei, in die ich schreiben möchte, nicht existiert.

da es für den anwender des programms unzumutbar ist, dafür zu sorgen, daß immer eine .txt-datei richtigen namens und komplett leer am richtigen pfad vorhanden ist (bekanntlich gehen realistische programmierer davon aus, daß irgendwann auch ein DAU mit ihrem programm zurechtkommen muß) und es auch praktisch wäre, wenn ich die einzelnen abspeichervorgänge in dateien unterschiedlichen namens vornehmen könnte, müßte ich nun also wissen, wie man in java eine leere .txt-datei gewünschten namens erstellt, in die ich danach meine daten abspeichern kann.

danke im voraus für hoffentlich hilfreiche tipps.
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret."
Then he pulled the trigger of his BFG9000.
RaistlinMajere ist offline   Mit Zitat antworten
Alt 17.12.2002, 09:46   #2
creibl
Veteran
 
Registriert seit: 24.04.2002
Beiträge: 278


Standard

So weit ich weiß, legt Java die Detei beim Aufruf an.

Sprich die Datei muss nicht vorhanden sein. Wenn sie trotzdem vorhanden ist, wird sie überschrieben.

Mit

public static void main(String[] args)
{
....
String filename;
......
......
filename = "C:\\Verzeichnis\\Dateiname.txt";
w = new FileWriter(filename);

funktionierts zumindest bei mir.

Um in unterschiedlichen Dateinamen abspeichern zu können, würde ich es so machen: Einfach an den Dateinamen das Datum und die Uhrzeit anfügen lassen.

Hoffe, ich konnte dir helfen.

mfg
creibl ist offline   Mit Zitat antworten
Alt 17.12.2002, 10:50   #3
Tarjan
Quantensingularität
 
Registriert seit: 28.09.2000
Alter: 55
Beiträge: 8.336


Tarjan eine Nachricht über ICQ schicken
Standard

Der FileWriter ist schon ok zum Zeilenweise schreiben. Für das File selbst würde ich allerdings ein java.io.File Object verwenden. Da hast du sehr viele Möglichkeiten zur Filemanipulation wie Überprüfen ob es exisitiert, anlegen, löschen, Directorys erstellen etc.

Willst du Dich frei im File bewegen (also einmal vorne lesen, dan hinten schreiben, dann wieder vorne schreiben ezc.) dann verwende das RandomAccessFile, da muss allderings ein entsprechendes File im Filesytem vorhanden sein.
____________________________________
Was ist klein, grün und dreieckig?
Ein kleines grünes Dreieck!


Bahnübergänge sind die härtesten Drogen der Welt! Ein Zug und du bist weg!
Tarjan ist offline   Mit Zitat antworten
Alt 18.12.2002, 19:42   #4
RaistlinMajere
Inventar
 
Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343


Standard

Zitat:
Original geschrieben von creibl
So weit ich weiß, legt Java die Detei beim Aufruf an.

Sprich die Datei muss nicht vorhanden sein. Wenn sie trotzdem vorhanden ist, wird sie überschrieben.

Mit

public static void main(String[] args)
{
....
String filename;
......
......
filename = "C:\\Verzeichnis\\Dateiname.txt";
w = new FileWriter(filename);

funktionierts zumindest bei mir.

Um in unterschiedlichen Dateinamen abspeichern zu können, würde ich es so machen: Einfach an den Dateinamen das Datum und die Uhrzeit anfügen lassen.

Hoffe, ich konnte dir helfen.

mfg
stimmt, funzt gut, nur ein problem gibts noch. ich möchte die datei im homedirectory (d.h. dort, wo sich auch die .java-dateien befinden), abspeichern, der pfad dorthin kann aber natürlich unterschiedlich sein.

dummerweise wird mir jedoch, wenn ich als savepath einfach ".\\dateiname.txt" angebe, die datei immer in den installationsordner des onestudios\bin abgespeichert, als ob das das homedirectory wäre, was es aber nicht ist!
ich habe auch schon probiert, den absoluten pfad des .java-files auszulesen, um ihn als pfadangabe fürs abspeichern dex .txt-files zu verwenden, aber auch da wird mir das bin-verzeichnis angegeben, was aber nicht korrekt ist, weil die java-files woanders liegen.
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret."
Then he pulled the trigger of his BFG9000.
RaistlinMajere ist offline   Mit Zitat antworten
Alt 18.12.2002, 22:40   #5
Tarjan
Quantensingularität
 
Registriert seit: 28.09.2000
Alter: 55
Beiträge: 8.336


Tarjan eine Nachricht über ICQ schicken
Standard

Filenamen ohne Pfandangabe angeben, dann wird das File im Arbeitsverzeichnis (sprich, von wo du die main-Klasse aufrufst) angelegt.
____________________________________
Was ist klein, grün und dreieckig?
Ein kleines grünes Dreieck!


Bahnübergänge sind die härtesten Drogen der Welt! Ein Zug und du bist weg!
Tarjan ist offline   Mit Zitat antworten
Alt 19.12.2002, 02:50   #6
RaistlinMajere
Inventar
 
Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343


Standard

Zitat:
Original geschrieben von Tarjan
Filenamen ohne Pfandangabe angeben, dann wird das File im Arbeitsverzeichnis (sprich, von wo du die main-Klasse aufrufst) angelegt.
das war auch das 1., was ich probiert habe und laut go2java sollte es ja auch funzen, nur tuts das leider nicht.
wie gesagt, wenn ich mir den absoluten pfad zu meinen .java-dateien, also dorthin, wo eigentlich das arbeitsverzeichnis sein sollte, ausgeben lasse, bekomme ich wieder diesen onestudio\bin-ordner.
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret."
Then he pulled the trigger of his BFG9000.
RaistlinMajere ist offline   Mit Zitat antworten
Alt 19.12.2002, 23:18   #7
RaistlinMajere
Inventar
 
Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343


Standard nachtrag @ tarjan

ich habe heute meine java-files auf einem anderen system mit dem jdk.1.3 und forte ausprobiert, dort werden die textdateien direkt im installations-homedirectory von forte abgespeichert, also nicht wie bei mir (jdk1.4 und onestudio=nachfolger von forte) noch im unterverzeichnis "\bin".

trotzdem wird in beiden fällen nicht das tatsächliche arbeitsverzeichnis zum abspeichern hergenommen.

würde mich interessieren, wo die abgelegt werden, wenn die java-files nicht über forte/onestudio verarbeitet werden, sondern z.b. über die kommandozeile.
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret."
Then he pulled the trigger of his BFG9000.
RaistlinMajere ist offline   Mit Zitat antworten
Alt 20.12.2002, 00:06   #8
Who-T
Elite
 
Registriert seit: 01.08.2000
Beiträge: 1.395


Who-T eine Nachricht über ICQ schicken
Standard

wenn ich mich nicht irre liegt das daran, dass die IDEs die java-apps immer aus einem bestimmten directory ausführen.
bei jbuilder zb ist dies der projektordner selber, die eigentlichen klassen liegen woanders.

im normalfall kannst jedoch davon ausgehen, dass das aktuelle verzeichnis das ist, aus dem du java aufgerufen hast

am einfachsten jedoch über die konsole nachzuprüfen


steht da jetzt überhaupt was sinnvolles drin? ich sollt nicht mehr posten, zu wenig geschlafen
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees.
Who-T ist offline   Mit Zitat antworten
Alt 20.12.2002, 08:23   #9
Tarjan
Quantensingularität
 
Registriert seit: 28.09.2000
Alter: 55
Beiträge: 8.336


Tarjan eine Nachricht über ICQ schicken
Standard

Den Grund hat Who-T schon erwähnt. Die Files liegen in diesen Verzeichnissen, da die IDE´s die Java Programme in diesen Verzeichnissen ausführen. Rufst du die Programme von der Komandozeile auf, so werden die Dateien auch direkt in den jeweiligen Ordner erzeugt.

Alternativ schaue mal, ob du nicht das Verzeichnis in der IDE ändern kannst.

Und die 3. Möglichkeit ist die, dass Du getrennt ein Resourcenverzeichnis anlegst und den Pfad dahin absolut angibst.
____________________________________
Was ist klein, grün und dreieckig?
Ein kleines grünes Dreieck!


Bahnübergänge sind die härtesten Drogen der Welt! Ein Zug und du bist weg!
Tarjan ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:03 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag