Java Länge einer Datei in Bytes ausgeben?

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.


RedDevil1982 
Beitragsersteller
 07.08.2023, 18:53

D. h., was muss ich ändern?

0
Gwathraug  07.08.2023, 18:58
@RedDevil1982

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.

0
RedDevil1982 
Beitragsersteller
 07.08.2023, 19:03
@Gwathraug

Wo muss ich dieses System.getProperty("user.dir") eingeben?

0
RedDevil1982 
Beitragsersteller
 07.08.2023, 19:18
@Gwathraug

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.

0
Gwathraug  07.08.2023, 19:18
@RedDevil1982

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.

1

Was ist der Inhalt von „pathname“? Mit falschem Pfad greifst du nicht auf die richtige Datei zu.


RedDevil1982 
Beitragsersteller
 07.08.2023, 18:51

pathname ist nur ein Hinweis/Hilfe die von Intellij angezeigt wird.

0
mjutu  07.08.2023, 19:09
@RedDevil1982

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.

0
Gwathraug  07.08.2023, 18:49

Wie im Screenshot ersichtlich ist das "Testen.txt"...

0