Datei in einem Unterverzeichnis erstellen

bizzlshizzl

Mitglied
Hallo,

Ich habe erst vor wenigen Tagen mit dem Programmieren angefangen und habe mal eine Frage.

Wie kann ich eine Datei in einem Unterverzeichnis des aktuellen Verzeichnisses mit Hilfe von einem printWriter-Objekt erstellen?

Also :

Code:
datei = new PrintWriter (dateiname);

Nur, dass die Datei nicht im Verzeichnis der class-Datei landet, sondern in einem von mir bestimmten.
Danke schon im Voraus :toll:
 
Wenn Du den Parameter "dateiname" so angibst "meineDatei.txt" dann landet die Datei doch nicht dort, wo die Classdateien sind.
 
Zuletzt bearbeitet von einem Moderator:
Also so wie ich es gemacht habe schon.
Wenn ich den Code so benutze, wie er dort steht (ohne .txt) erstellt er mir eine Datei in dem Ordner der class-Datei.
Mit .txt, hab ich grad mal getestet, krieg ich ne Fehlermeldung vom Compiler "cannot find symbol".
 
Java:
final Writer writer = new PrintWriter("test.txt");		
writer.close();
Egal, von wo ich das aufrufe, test.txt wird immer in dem Verzeichnis erzeugt, wo ich gerade bin. Wie startest du Dein Programm denn? Nicht mit "java -cp /pfad/zu/classes mein.package.KlasseMitMain"?
 
Okay. Du hast recht 😀
Ich bin in dem Verzeichnis meiner class-Dateien, deshalb.
Aber das war nicht meine Frage, sondern wie ich das halt festlegen kann.🙂
 
statt
Java:
new PrintWriter("test.txt");
machst du halt
Java:
new PrintWriter("/dein/pfad/zur/date/test.txt");
 
Oder, wenns ein Unterordner sein soll und kein absoluter Pfad
Java:
new PrintWriter("./mein/unterverzeichnis/test.txt");

Oder zwei Ordner über dem aktuellen Verzeichnis
Java:
new PrintWriter("../../test.txt");
 
Zuletzt bearbeitet von einem Moderator:
So und dann hätte ich gleich ne Folgefrage:

Wenn ich jetzt für die Ordner nicht die Namen sondern ne bestimmte Variable angeben will z.B:

Code:
 datei = new PrintWriter("/variableA/variableB/meineDatei.txt")

Die Variablen natürlich verweisen auf einen String mit dem selben "Namen" wie der Ordner.
 
Alter, soo schwer ist das doch nicht!
Java:
String meinDateiName = "./pfad/zur/Datei.txt";
Writer writer = new PrintWriter(meinDateiName);
Oder
Java:
String meinPfad = "/pfad/zur/";
String meineDatei= "Datei.txt";
Writer writer = new PrintWriter(meinPfad + meineDatei);
 
Nein, so meine ich das nicht.
Sondern :

Java:
public static void eintragAnlegen(String name)
	{
		PrintWriter datei;
		String datum;
		String termin;
		
		Scanner sc = new Scanner(System.in);
		datum = sc.next();
		
		try
		{
			datei = new PrintWriter("/name/datum.txt");
		}
		catch(FileNotFoundException e)
		{
			System.err.println("Datei konnte nicht geoeffnet werden!");
			return;
		}

Und in String name steht jetzt zum Beispiel Peter und in String datum 11.11.1111. Und in ner anderen Methode habe ich bereits einen Ordner erstellt mit dem Namen aus String name und nun will ich in dem Ordner eine datum(11.11.1111).txt erstellen.
Sorry wenn ich es komplizierter mache, als es ist.
 
Dann bastelst Du Dir die Trenner noch zwischen die Variablennamen und die Endung hinten dran. Es ist ja nicht verboten, mehr als zwei Strings zusamenzubasteln. Dazu drei Varianten
Java:
// Leicht verständlich aber häßlich
String meinDateiname = name + "/" + datum + ".txt";

// Schön, aber man mus wissen wie String.format funktioniert.
// Außerdem die langsamste der drei Varianten. Aber sicher nich so
// langsam, dass es stört.
String meinDateiname = String.format("%s/%s.txt", name, datum);

// Schnell, aber man muss mit StringBuilder umgehen können
String meinDateiname = new StringBuilder(name).append("/").append(datum).append(".txt").toString();
 

Neue Themen


Zurück
Oben