Brauche euren Lösungsweg zu einem File/IO-Beispiel

Status
Nicht offen für weitere Antworten.

Kaan

Bekanntes Mitglied
Hallo,

Ich will euren Lösungsweg zum folgenden Programmbeispiel haben...und NEIN, es handelt sich hierbei umd KEINE Hausaufgabe! ;)

Es geht darum, dass mein Programmierlehrer und ich nicht zu einer Übereinstimmung zu folgendem Beispiel kommen...



Hier die Aufgabenstellung 1:1 vom Test abgetippt:


4. Schreiben sie folgende Applikation am Zettel: (22)

Erzeugen sie eine txt-Datei "2ahit_test.txt" als File-Objekt im aktuellen Verzeichnis und lassen sie überprüfen ob sich die Datei im aktuellen Verzeichnis befindet:

a) Wenn ja: lassen sie folgendes überprüfen/durchführen:
...
b) Wenn nein: lassen sie eine Fehlermeldung in die Datei schreiben:
...




Ich würde gerne von euch wissen, wie ihr das Beispiel programmieren würdet. Ich will meinen Code nicht posten, damit ich euch nicht von vornherein beeinflusse.

Danke.
MfG Kaan
 

mic_checker

Top Contributor
Du erzeugst die Datei im aktuellen Verzeichnis und überprüfst anschließend ob die Datei im aktuellen Verzeichnis ist? Wofür? Nur zur Kontrolle oder wozu soll das dienen?
 

Kaan

Bekanntes Mitglied
Die txt-Datei wird als File-Objekt im aktuellen Verzeichnis angelegt und man soll eben überprüfen, ob sich die Datei im aktuellen Verzeichnis befindet. Ja, eigentlich nur zur Kontrolle...
 

Kaan

Bekanntes Mitglied
@Roar

Genau so hab' ich es auch gemacht!!! (und die anderen 27 Schüler der Klasse auch...)
Aber laut Lehrer ist es nicht die richtige Lösung...

Bevor ich den Code meines Lehrers poste, hätte ich gerne weitere Programmieransätze, wie man die Aufgabenstellung noch anders interpretieren könnte...

Wäre nett, wenn ihr hier so ca. 5 verschiedene Lösungswege mit verschiedenen verwendeten Methoden auflisten könntet. (falls das überhaupt möglich ist...)

Was auch toll wäre, wenn auch andere Personen ihre eigenen Lösungsansätze posten würden.

Danke für eure geopferte Zeit!
MfG Kaan
 

Zilchinger

Mitglied
Irgendwie ist die Aufgabenstelleung etwas dubios!!!
Wenn die Datei existiert, mache irgendwas...
Wenn nicht schreibe eine Fehlermeldung in die Datei...

Wie soll das den gehen, wenn sie garnicht existiert?
Poste vielleicht mal die ganze Aufgabenstellung, vielleicht kann man dann mehr erahnen! :D
 
B

Beni

Gast
Könnte mir noch das hier vorstellen:

Code:
File file = new File( "bla.txt" );
file.createNewFile();
if( file.exists() ){
}
else{
}
 
T

TheSunToucher

Gast
Erzeugen sie eine txt-Datei "2ahit_test.txt" als File-Objekt im aktuellen Verzeichnis...

hmmm, wenn mit "File-Objekt" eine Instanz von "java.io.File" gemeint ist, dann gibt der Satz keinen Sinn. Man kann keine Datei als File-Objekt erzeugen. Ein Java-File-Objekt ist quasi ein Verweis auf eine Datei, diese muss nicht existieren, kann aber mit "createNewFile()" oder "mkDir()" angelegt werden. Das Java-File-Objekt ist auch nicht veränderbar, wenn du beispielsweise ein "renameTo(File)" absetzt, zeigt das Java-File-Objekt ins leere.

Lange Rede kurzer Sinn, wollte nur mal angemerkt haben das aus dem Satz nicht klar wird ob ein datei, ein Java-File-Objekt oder beides angelegt werden soll!

:meld:
 

Kaan

Bekanntes Mitglied
Also es ist so...

Mit einem "virtuellen" File-Objekt überprüft das Programm, ob diese Datei zufällig auch "reell" auf der Festplatte exisitiert.
 

Kaan

Bekanntes Mitglied
Also das ist die komplette Aufgabenstellung:

Test.jpg


Und jetzt kommts...

Der Lehrer hat bei jedem...

Code:
if(file.exists()){
		
}

...durchgestrichen und durch...

Code:
if(file.getPath().equals(file.getParent())){
		
}

...ersetzt!!


Ich würde gerne von euch wissen, ob das für euch einen Sinn mit dem ergibt, was in der Angabe steht!

MfG Kaan
 
B

Beni

Gast
Der Pfad des Files soll gleich wie der Pfad des Parents sein. Das ist ja schonmal in sich ein Widerspruch...

Selbst wenn das korrekt ist, es ist ein Hack. Methoden wie "exists", "isDirectory" und etc. sind solchen Konstrukten vorzuziehen, ganz einfach, weil sie für genau solche Fragen geschrieben wurden.

Ich finde das ein ziemlich unsinniges if, und solange ich keine Erklärung höre, würde ich sagen "danke für ihren Beitrag, setzen, 6".

[Edit: ich wollt noch sagen, ich habe soeben ein Gegenbeispiel programmiert, welches den Vergleich noch seltsamer erscheinen lässt. Es kann verschiedene Arten Pfade geben, relative und absolute. Zwei java.io.File's können zu derselben echten Datei zeigen, aber getPath liefert andere Werte. Bei einer relativen Angabe kann getParent sogar null sein, in solch einem Fall liefert equals von String false.

Das würde bedeuten, dass der Vergleich bei derselben Datei einmal false, und einmal true ergeben könnte, je nachdem, wie der Pfad eingegeben wurde.

Code:
        File a = new File( "test.txt" );
        File b = new File( a.getCanonicalPath() );
        
        System.out.println( a.exists() + " " + a.getPath() + " " + a.getParent() );
        System.out.println( b.exists() + " " + b.getPath() + " " + b.getParent() );

Im übrigen sind "getPath" und "getParent" reine Stringmanipulationen, und haben mit dem Dateisystem überhaupt nichts zu tun. Ein Blick in den Quellcode von java.io.File zeigt dies. Die Nicht-/Existenz einer Datei beeinflusst den Rückgabewert von "getPath" und "getParent" nicht.
]
 

Kaan

Bekanntes Mitglied
Beni hat gesagt.:
"danke für ihren Beitrag, setzen, 6".

:D:D:D:D:D:D *looooooooool*


Achja...in einem Skriptum, welches er uns gegeben hat, steht zu diesem Konstrukt folgendes drin:

Code:
if(f.getPath().equals(f.getParent())) // File f ist root

Was sagt ihr dazu..?
 
B

Beni

Gast
Als "root" würd ich, zumindest unter Windows, was wie "c:\" gelten lassen. Oder für ein Programm das Verzeichnis, indem es ausgeführt wird, aber garantiert keine willkürlich gewählte Textdatei (was wäre mit einer anderen Textdatei? Sie hätte das gleiche Recht "root" genannt zu werden. Aber da es per Definition nur ein Root gibt, passt das nicht zusammen.)

Und falls er den Parent meint; dass "getParent" sogar null zurückgeben kann, obwohl es in Wirklichkeit einen Parent gibt, steht in meinem Edit, das ich da oben noch eingeflickt habe (sorry, das war bevor du was geschrieben hast). Da wäre das auch eine sehr heikle Aussage.

Wenn f in irgendeiner Form tatsächlich das Root wäre, dann würde der Ausdruck mit "false" evaluiert, und das war wohl auch nicht der Sinn (ok, er könnte einfach ein "!" vergessen haben).
 
T

TheSunToucher

Gast
Das mit dem "root" raff ich auch nicht. Willst du die roots des Systems dann geht das über:

Code:
File.listRoots();
 

comp89

Bekanntes Mitglied
kaan, du hast vergessen, dass er bei getParent und getPath die Methodenklammern vergessen hat und selbst wenn der ansatz stimmen würde, dann so sicher nicht!
 

Kaan

Bekanntes Mitglied
@comp89 aka Stephan ;)

Bei mir hat er sich ganz verschrieben und hat statt getParent() die nicht existierende Methode getRoot() hingeschrieben^^
 
T

TheSunToucher

Gast
Mal nebenbei, was ist das für eine Schule? Also seid ihr auf der Berufsschule, FOS o.ä. oder ist das so eine Programmieren AG in der 9ten Klasse?
 

Kaan

Bekanntes Mitglied
Wir gehen aufs TGM (www.tgm.ac.at). Das ist eine HTL (Höhere Technische Lehranstalt) in Wien. Dort gibt es verschiedene Zweige in Richtung Elektronik, Maschinenbau, usw... Wir gehen in Informations-Technologie. Da gibt es dann so Fächer wie Programmieren, Medientechnik, Netzwerktechnik usw.

Hört sich jetzt zwar toll an...aber naja...ich hätte mir mehr erwartet^^
 
T

TheSunToucher

Gast
Mit was in Deutschland kann man das gleichsetzen? Ist das so wie die "Fach Ober Schule" die dich auf's Studium vorbereitet oder mehr wie eine Fachhochschule?
 

Kaan

Bekanntes Mitglied
Naja, ich kenne mich mit dem Schulsystem von Deutschland nicht ganz aus. So eine HTL dauert 5 Jahre und man kann einer HTL nach Abschluss der achten Schulstufe beitreten. HTLs bieten aber auch Abendschulen usw. für Erwachsene an.
 
T

TheSunToucher

Gast
5 Jahre nach der 8ten Klasse? Hört sich irgendwie nach Abitur an... Abitur habt ihr doch auch, oder? Und wenn du damit fertig bist wird studiert?
 

Kaan

Bekanntes Mitglied
Abitur (Matura) ist bei uns am Ende der 5. Klasse der HTL und wer dann noch studieren will kann studieren gehen^^
 

Kaan

Bekanntes Mitglied
Zurück zum Thema: Wo müsste das File liegen, damit file.getPath().equals(file.getParent()) true ergibt?
 

Bleiglanz

Gesperrter Benutzer
das wird imho NIE true ergeben, evtl. bei ganz pathologischen strings ("" oder ?)

dabei ist überhaupt keine Datei beteiligt, das ist reine Stringbearbeitung!
Code:
java.io.File f = new java.io.File("völlig/egal/was/hier/steht");
System.out.println(f.getPath()+"="+(f.getParent()));
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Ich brauche euren Code Allgemeine Java-Themen 12
Robert Zenz Ich brauche bitte mal kurz einen Sanity/Reality-Check betreffend Tests. Allgemeine Java-Themen 9
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
_user_q Was brauche ich, um eine eigene "Search for updates"-Funktion einzubauen? Allgemeine Java-Themen 1
MoxxiManagarm Ich brauche einen smarten Ansatz Allgemeine Java-Themen 23
RalleYTN Brauche Hilfe beim Run-Length-Decoding Allgemeine Java-Themen 9
J Java "Bank Programm" Brauche eure Hilfe Allgemeine Java-Themen 3
Thallius Unfassbarer Fehler. Brauche Ideen zum Debuggen Allgemeine Java-Themen 9
J Unvorhersehbares Verhalten - benutze ich die falsche Bedingungsprüfung oder brauche ich Threads? Allgemeine Java-Themen 12
H NetBeans geotools 15 oder 16 - welche Abhängingkeiten gibt es? Welche Jars brauche ich? Allgemeine Java-Themen 4
S Best Practice Brauche eine Idee für eine Java Projekt! Allgemeine Java-Themen 11
M Brauche Hilfe bei Quellcodeverständnis Allgemeine Java-Themen 4
D Brauche Hilfe bei Rechnung (Exponentiation) Allgemeine Java-Themen 12
F Brauche Hilfe bei Java Allgemeine Java-Themen 6
C Brauche Hilfe mit Modulo Strategie Allgemeine Java-Themen 2
S Brauche Hilfe: Prüfungsaufgabe Java Allgemeine Java-Themen 8
Fu3L Input/Output Brauche Rat bei effizienter Speicherung großer Datenmengen Allgemeine Java-Themen 21
S brauche Hilfe für ssh connection in java Allgemeine Java-Themen 6
T Ich brauche gute Quellen Allgemeine Java-Themen 13
S Brauche Hilfe bei Planung für JAVA-Programm Allgemeine Java-Themen 3
hdi GUI: Ich brauche ein Textfeld mit "Sperre" Allgemeine Java-Themen 12
Developer_X Brauche Hilfe bei meinem kleinen hilfsprogramm Allgemeine Java-Themen 4
Developer_X Bound Animation - Brauche Hilfe Allgemeine Java-Themen 3
E brauche schnell Ausführbare Datei Allgemeine Java-Themen 4
D Brauche mal Hilfe bin noch nicht so fit Allgemeine Java-Themen 3
M brauche grösseren Datentyp Allgemeine Java-Themen 5
L Brauche Hilfe bei Memory Programmierung Allgemeine Java-Themen 2
N Brauche dringend Hilfe! Allgemeine Java-Themen 7
S brauche dringend help bei einem projekt (Römisch-dezimal) Allgemeine Java-Themen 3
M Brauche einen Tipp, bei einer Aufgabe ! Allgemeine Java-Themen 3
M brauche hilfe mit iReport Allgemeine Java-Themen 4
P Java Acces Datenbank Problem ! (Brauche eine Abfrage) Allgemeine Java-Themen 5
V Brauche dringend Hilfe. Object-handling Allgemeine Java-Themen 4
S Ich Brauche Bei Einen Bot Hile :( Allgemeine Java-Themen 2
V Brauche Beratung in Sachen Java+Datenbank+Web Allgemeine Java-Themen 8
M Schätzfrage: Wieviel Prozessorpower brauche ich? Allgemeine Java-Themen 27
R Hilfe - brauche ein Applet zu Demozwecken Allgemeine Java-Themen 10
J Brauche Hilfe zum ToolKit Allgemeine Java-Themen 15
K Brauche Hilfe bei Simulation einer Flugkurve . Allgemeine Java-Themen 14
T Brauche Hilfe! Allgemeine Java-Themen 10
T Lizenzfrage - brauche Infos Allgemeine Java-Themen 34
T Autostart Programm - brauche Tipps Allgemeine Java-Themen 5
G Brauche hilfe bei JMF: Wie eigene Streaming Data Source! Allgemeine Java-Themen 4
N int[] referenzen in ein Array packen, brauche Hilfe. Allgemeine Java-Themen 7
A brauche schnelle antwort wg. schleife! Allgemeine Java-Themen 3
T Brauche Hilfe bei ClassLoader Allgemeine Java-Themen 2
G Brauche Hilfe bei Erstellung eines Musters! Allgemeine Java-Themen 3
G packageproblem? brauche rat! Allgemeine Java-Themen 2
S brauche Orientierungshilfe in Java Allgemeine Java-Themen 5
Z Was brauche ich für Servlets? Allgemeine Java-Themen 17
S Static + Speicher + Bytecode etc. Brauche HILFE :/ Allgemeine Java-Themen 11
0 Lösungsweg Client Server Kommunikation Fehlermeldung ausgeben Allgemeine Java-Themen 12
E Dezimalzahl -> Hexadezimalzahl [Lösungsweg gesucht] Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben