von Java/Eclipse verwendete Datei existiert gar nicht?

berndoa

Top Contributor
Hallo,
Ich glaube gerade ich habe es mit einem Geist zu tun.
Ich habe in Eclipse diesen Code, der von eienr vorgegebenen Datei bei Bedarf den Text einliest oder den Text updated:

Java:
import java.io.*;
import java.util.Scanner;

public class txtManager {

    File file = new File(".\\TimeStamp.txt");

    FileWriter fw;
    
    public txtManager() {}

    public String read() {
        System.out.println("file.exists()?" + file.exists());
        try {

            Scanner in = new Scanner(new FileReader(file));
            StringBuilder sb = new StringBuilder();
            while (in.hasNext()) {
                sb.append(in.next());
            }
            in.close();
            String outString = sb.toString();
            System.out.println("outString=" + outString);
            return outString;

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return "";
    }

    public void write(String a) {
        try {
            fw = new FileWriter(file, false);

            fw.write(a);
            fw.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}


In einer anderen Klasse habe ich fogenden Code, der obigen Code nutzt um abzugleichen ob zwischen jetzt und der in der Datei gespeicherten Zeit 3 Tage vergangen sind:

Java:
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;

public class Timer {

    txtManager txtm = new txtManager();
    LocalDateTime lastStoredTime = getStoredTime();

    public boolean isWaitTimeOver() {
        LocalDateTime thisTime = LocalDateTime.now();
        System.out.println("lastStoredTime: "+lastStoredTime);
        System.out.println("thisTime: "+thisTime);
        return ((lastStoredTime.until(thisTime, ChronoUnit.DAYS)) >= 3);
        //return true;
    }

    public LocalDateTime getStoredTime() {
        String a = txtm.read();
        if (a.equals("")) {
            LocalDateTime thisTime = LocalDateTime.now();
            a = thisTime.toString();
        }
        LocalDateTime dateTime = LocalDateTime.parse(a);
        return dateTime;
    }

    public void updateStoredTime() {
        LocalDateTime thisTime = LocalDateTime.now();
        lastStoredTime = thisTime;
        String a = thisTime.toString();
        txtm.write(a);
    }

}

Das Schlimme bzw. komische ist nur:
der Code läuft soweit und scheint auch irgendwie mit der Datei zu interagieren.

Nur existiert diese Datei gar nicht, sie ist nirgends im entsprechenden Workspace Ordner zu finden.

Dass sie dort sein müsste weiß ich weil ich auch andere .ods Dateien dort drin habe, die auf ähnliche Art und Weise ausgelesen werden.

ich bin sehr verwirrt denn Eclipse läuft als gäbe es die Datie mit entsprechendem Inhalt.
Ausgabe der Konsole sieht dann so aus:

Code:
file.exists()?true
outString=2022-09-14T21:21:09.989883400
lastStoredTime: 2022-09-14T21:21:09.989883400
thisTime: 2022-09-14T21:22:18.141599400
isWaitTimeOver: false
 
Lass dir mal den absoluten Pfad der Datei ausgeben.
Mit selbst ist es nicht nur einmal passiert, dass ich dasselbe Projekt in unterschiedlichen Verzeichnissen ausgecheckt/kopiert hatte und irrtümlicherweise im falschen Verzeichnis/Projekt war.
Ja, an sowas liegt es offenbar..
Ich hatte kürzlich von einer alten Eclipse Version auf eine Neue gewechselt.
Hierzu hatte ich einfach eine neue Eclipse Version installiert und in einem ganz neuen Ordner Eclipse und seine workspaces anlegen lassen.

Nur hatte ich, weil ich ja meine ganzen Projekte und so noch im prdner vom alten Eclipse hatte,
diese erst in einen "Backup Ordner" gespeichert und von da kopiert in den Ordner vom neuen Eclipse.

Von den workspaces her sehe ich auch dass Eclipse brav in dem Ordner der neuen Eclispe version workspaces anlegt.

Nur aus mir völlig unergründlichen Gründen sucht er Dateien und legt welche an im dem alten Backup ordner, von dem aus ich die Workspace Dqteien rüberkopiert hatte.

Völlig dämlich aber war da bei allem Anderen Eclipse brav in seinem neuen Ordner arbeitet.

Also ich habe gerade keine Ahnung wie ich das Eclipse beibringen kann wo er nach Dateien suchen muss :-/

Weil er derzeit am völlig falschen ort sucht :-/
 
Habe jetzt in Kleinarbeit ein neues Projekt angelegt, package angelegt und da die java Dateien rein "importier" sowie im workspace auch die anderen sachen reinimportiert.
Nervige Kleinarbeit aber wenigstens passt nun der verwendete Quellordner
 
Check mal die Projekteigenschaften, im Normfall kannst du alle Ordner festlegen. Womöglich hast du den Ausführugnsordner absolut eingegeben anstatt relativ zum Projektverzeichnis.
 
Grundsätzlich musst du für eine neue Eclipse Version keinen neuen Workspace anlegen. Einfach die neue Eclipse Version auf den alten Workspace verweisen - fertig.
 
Grundsätzlich musst du für eine neue Eclipse Version keinen neuen Workspace anlegen. Einfach die neue Eclipse Version auf den alten Workspace verweisen - fertig.
Keine Ahnung wie das geht. :-/

Wenn ich links im Package Explorer auf das projekt rechtsgeklickt hatte->Einstellungen, dann stand da zwar überall der falsche Ordner drin aber keinerlei Möglichkeit das abzuändern. :-/
Sah so aus, als wenn man das nicht mehr abändern kann bei einem bestehenden Projekt
 

Zurück
Oben