Java Länge einer Datei in Bytes ausgeben?
Warum wird hier für size 0 ausgegeben?
Texten.txt besteht nur aus dem Wort:
6 Zeichen, d. h. für mich 6 Bytes.
2 Antworten
Das dürfte daran liegen, dass du einen Pfad relativ zum aktuellen Arbeitsverzeichnis angibst, das aktuelle Arbeitsverzeichnis beim Ausführen aber nicht "kapitel3_KlassenUndObjekte" ist.
Finde heraus, welcher Pfad beim Ausführen das Arbeitsverzeichnis ist und gib den Pfad relativ dazu an, finde das Arbeitsverzeichnis heraus und wechsele zum Verzeichnis in dem die Datei liegt oder aber verwende einen absoluten Pfad.
Für die ersten beiden kannst du
System.getProperty("user.dir")
benutzen.
Wo muss ich dieses System.getProperty("user.dir") eingeben?
Jetzt gehts. Man muss immer erst die Datei in Java speichern und dann ausführen. Jetzt hab ichs klappt. Danke!
Man hätte auch einfach auf die Testen.txt Datei mit der rechten Maustaste klicken können, Open in, Explorer
Dann sehe ich den absoluten Pfad. Denn füge ich dann in Java unter
long size = new java.io.File(C:\\...) ein und ich bekomme für
System.out.println(size) die 6 Bytes angezeigt.
Um das aktuelle Arbeitsverzeichnis zu ermitteln:
System.out.println("Aktuelles Arbeitsverzeichnis: "+System.getProperty("user.dir"));
Dann weißt du erstmal, wo du überhaupt bist.
Von da aus kannst du dir dann deinen relativen Pfad suchen.
Oder aber, wenn du richtig Spaß haben willst, dann benutze das:
long size = new java.io.File(new java.io.File(Merken.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getPath(),"Testen.txt").length();
Solange deine Merken.class und Testen.txt im selben Verzeichnis liegen kannst du damit das Arbeitsverzeichnis ignorieren.
Was ist der Inhalt von „pathname“? Mit falschem Pfad greifst du nicht auf die richtige Datei zu.
pathname ist nur ein Hinweis/Hilfe die von Intellij angezeigt wird.
Also ist es ein Hinweis, den du beachten solltest. Woher soll der Interpreter wissen, welchen Unterordner du meinst? Füge doch mal eine Zeile ein, die testet, ob das File mit Pfadangabe existiert.
D. h., was muss ich ändern?