existiert () und aktueller Pfad von java.io.File

Bei der Verarbeitung, bei der automatisch eine Datei erstellt wird, z. B. beim Standardkonstruktor von FileWriter, besteht die Gefahr des Überschreibens, wenn die Datei zuerst vorhanden ist. Also habe ich beschlossen, exist () in java.io.File zu verwenden.

Das erste, was ich mir ausgedacht habe, war

Problematisches Beispiel


 public static void main(String[] args){
  /**
  args[0] =Erstellt mit dem Standardkonstruktor von FileWriter
Zu schreibender Dateiname (ohne Erweiterung);
  */

  String filename = args[0] + ".txt";

  //Aktuellen Pfad abrufen und Instanz erstellen
  String path = System.getProperty("user.dir");
  File file = new File(path + "\\" + filename);

  // exists()Urteil von
  boolean flag = file.exists();
  if (flag) {
   System.out.println(filename + "Existiert.");

Ich dachte, ich müsste so etwas tun. Dies liegt daran, dass es viele Beispiele gab, wie der aktuelle Pfad genau bei der Untersuchung der Verwendung von exist () geschrieben werden kann. Und das ist wahrscheinlich richtig.

Da dies jedoch in erster Linie vom Inhalt der Eingabe in die Befehlszeile (args [0]) abhängt, kann der aktuelle Pfad einschließlich des Dateinamens nicht von Anfang an und als Vorbereitung vor dem Erstellen einer Datei mit FileWriter im aktuellen Verzeichnis vorbereitet werden Wenn Sie nur überprüfen müssen, in der Tat

Sauberes Beispiel


 public static void main(String[] args){
  String filename = args[0] + ".txt";

  //Instanz erstellen
  File file = new File(filename);

  // exists()Beurteilung durch (gleich unten)
  boolean flag = file.exists();
  if (flag) {
   System.out.println(filename + "Existiert.");

Das war genug.

Wenn also aktueller Pfad + bei der Suche nach dem gesuchten Dateinamen vorhanden ist (), können Sie einfach den Dateinamen eingeben, ohne den vollständigen Pfad im Dateikonstruktor einzugeben.

Recommended Posts