Chemin d'accès au fichier en Java

Shikha Chaudhary 12 octobre 2023
  1. Lire un fichier Java
  2. Comment spécifier le chemin du fichier en Java
  3. Comment obtenir le chemin du fichier en Java
  4. Conclusion
Chemin d'accès au fichier en Java

Lorsque vous travaillez avec des fichiers en Java, il est important de spécifier le nom de fichier correct ainsi que le chemin et l’extension corrects.

Les fichiers avec lesquels nous travaillons peuvent être présents dans le même répertoire ou dans un autre. Selon l’emplacement du fichier, le chemin d’accès change.

Cet article explique comment accéder et spécifier les chemins de fichiers en Java.

Lire un fichier Java

Lire un fichier signifie obtenir le contenu d’un fichier. On utilise la classe Java Scanner pour lire un fichier. Comprenons cela à travers un exemple.

Nous allons d’abord écrire un programme Java pour créer un nouveau fichier. Ensuite, nous écrirons un autre programme Java pour ajouter du contenu à ce fichier nouvellement créé.

Enfin, nous lirons le contenu de ce fichier. Notez qu’aucun des programmes de cet article ne s’exécutera sur un compilateur en ligne (utilisez un compilateur hors ligne avec le chemin correctement défini).

Créer un fichier

import java.io.File;
import java.io.IOException;

public class Main {
  public static void main(String[] args) {
    // Try catch block
    try {
      // Creating a file with the name demofile.txt
      File myFile = new File("demofile.txt");

      if (myFile.createNewFile()) {
        System.out.println("The file is created with the name: " + myFile.getName());
      } else {
        System.out.println("The file already exists.");
      }
    } catch (IOException x) {
      System.out.println("An error is encountered.");
      x.printStackTrace();
    }
  }
}

Production :

The file is created with the name: demofile.txt

Ce fichier est créé dans le même répertoire où les fichiers Java sont présents. Tous les fichiers du programme Java se trouvent dans le répertoire C.

Ajouter du contenu au fichier

import java.io.FileWriter;
import java.io.IOException;

public class Main {
  public static void main(String[] args) {
    try {
      // create an object
      FileWriter writeInFile = new FileWriter("demofile.txt");

      // Adding content to this file
      writeInFile.write("We are learning about paths in Java.");

      writeInFile.close();
      System.out.println("Successfully done!");
    } catch (IOException x) {
      System.out.println("An error is encountered.");
      x.printStackTrace();
    }
  }
}

Production :

Successfully done!

Lire le fichier

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner; //scanner class for reading the file

public class Main {
  public static void main(String[] args) {
    try {
      File myFile = new File("demofile.txt");

      // create the scanner object
      Scanner readFile = new Scanner(myFile);

      while (readFile.hasNextLine()) {
        String data = readFile.nextLine();
        System.out.println(data);
      }
      readFile.close();
    } catch (FileNotFoundException x) {
      System.out.println("An error occurred.");
      x.printStackTrace();
    }
  }
}

Production :

We are learning about paths in Java.

Notez qu’ici, à l’intérieur de la méthode File(), nous ne transmettons que le nom du fichier avec son extension.

Nous ne précisons pas le chemin complet du demofile.txt. Le demofile.txt est présent dans le même répertoire et dossier où nous sauvegardons tous ces fichiers de programme Java.

Cependant, si le demofile.txt est présent dans un autre répertoire ou dossier, la lecture de ce fichier n’est pas si simple. Dans de tels cas, nous spécifions le chemin complet du fichier.

Pour obtenir plus de détails sur le système de fichiers en Java, reportez-vous à cette documentation.

Comment spécifier le chemin du fichier en Java

Pour spécifier le chemin d’un fichier, on passe le nom du fichier avec son extension à l’intérieur de la méthode File(). On fait comme ça.

new File("demofile.txt")

Notez que le nom du fichier est suffisant uniquement lorsque le fichier se trouve dans le même dossier que le répertoire du projet de travail. Sinon, nous devons spécifier le chemin complet du fichier.

Si vous ne connaissez pas le nom du fichier, utilisez la méthode list(). Cette méthode renvoie la liste de tous les fichiers du répertoire courant.

Présente dans la classe File de la librairie java.io, la méthode list() renvoie la liste de tous les fichiers et répertoires sous forme de tableau. La sortie qu’il renvoie est basée sur le répertoire courant défini par un nom de chemin abstrait.

Si le chemin abstrait ne désigne pas un répertoire, la méthode list() renvoie null. Parfois, nous ne savons pas où se trouve le fichier.

De plus, des erreurs se produisent lorsque le fichier que nous devons lire n’est pas présent dans le répertoire de travail courant. Il est préférable d’utiliser le chemin complet du fichier pour éviter ces problèmes.

Pour obtenir le chemin exact d’un fichier, utilisez les méthodes indiquées ci-dessous.

Comment obtenir le chemin du fichier en Java

Lorsque nous ne connaissons pas le chemin d’un fichier, nous pouvons utiliser certaines méthodes de Java pour trouver le chemin d’un fichier. Ensuite, nous pouvons spécifier ce chemin comme argument.

Java fournit trois types de chemins de fichiers - absolu, canonique, et abstrait. La classe java.io.file possède trois méthodes pour trouver le chemin d’un fichier.

Obtenir le chemin du fichier à l’aide de la méthode getPath() en Java

La méthode getPath() appartient à la classe File de Java. Il renvoie le chemin du fichier abstrait sous forme de chaîne.

Un chemin abstrait est un objet de java.io.file, qui référence un fichier sur le disque.

Syntaxe:

file.getPath()

Exemple:

import java.io.*;
public class Main {
  public static void main(String args[]) {
    try {
      // create an object
      File myFile = new File("demo.txt");

      // call the getPath() method
      String path = myFile.getPath();
      System.out.println("The path of this file is: " + path);
    } catch (Exception e) {
      System.err.println(e.getMessage());
    }
  }
}

Production :

The path of this file is: demo.txt

Comme vous pouvez le voir dans la sortie ci-dessus, seul le nom du fichier avec l’extension est la sortie. Cela montre que le fichier est présent dans le même dossier où se trouve le fichier du programme Java.

Obtenir le chemin du fichier à l’aide de la méthode getAbsolutePath() en Java

La méthode getAbsolutePath() renvoie une chaîne comme chemin absolu du fichier. Si nous créons le fichier avec un chemin absolu, alors la méthode getAbsolutePath() renvoie le chemin.

Cependant, si nous créons l’objet en utilisant un chemin relatif, la méthode getAbsolutePath() résout le chemin en fonction du système. Il est présent dans la classe File de Java.

Syntaxe:

file.getAbsolutePath()

Notez que le chemin absolu est le chemin qui donne l’URL complète du fichier présent dans le système quel que soit le répertoire dans lequel il se trouve. D’autre part, le chemin relatif donne le chemin du fichier vers le répertoire actuel.

Exemple:

// import the java.io library
import java.io.*;

public class Main {
  public static void main(String args[]) {
    // try catch block
    try {
      // create the file object
      File myFile = new File("pathdemo.txt");

      // call the getAbsolutePath() method
      String absolutePath = myFile.getAbsolutePath();

      System.out.println("The Absolute path of the file is: " + absolutePath);
    } catch (Exception e) {
      System.err.println(e.getMessage());
    }
  }
}

Production :

The Absolute path of the file is: C:\Users\PC\pathdemo.txt

Notez que nous obtenons cette fois le chemin de travail complet, en partant du répertoire de travail actuel vers le dossier actuel dans lequel le fichier est présent.

Ainsi, chaque fois que vous ne connaissez pas l’emplacement d’un fichier, utilisez la méthode du chemin absolu pour trouver où le fichier est présent. Ensuite, vous pouvez spécifier ce chemin chaque fois que vous devez lire ce fichier.

De cette façon, le fichier à lire serait facilement trouvé.

Obtenir le chemin du fichier à l’aide de la méthode getCanonicalPath() en Java

Présent dans la classe Path renvoie le chemin canonique d’un fichier. Si le chemin est canonique, alors la méthode getCanonicalPath() renvoie le chemin du fichier.

Le chemin canonique est toujours unique et absolu. De plus, cette méthode supprime tout . ou .. du chemin.

Syntaxe:

file.getCanonicalPath()

Exemple:

// import the java.io library
import java.io.*;

public class Main {
  public static void main(String args[]) {
    // try catch block
    try {
      // create the file object
      File myFile = new File("C:\\Users");

      // call the getCanonicalPath() method
      String canonical = myFile.getCanonicalPath();

      System.out.println("The Canonical path is : " + canonical);
    } catch (Exception x) {
      System.err.println(x.getMessage());
    }
  }
}

Production :

The Canonical path is:C:\Users

Pour en savoir plus sur les chemins en Java, reportez-vous à cette documentation.

Conclusion

Dans cet article, nous avons vu comment nous pouvions spécifier le chemin d’un fichier si nous devions le lire. Nous avons également étudié les différentes méthodes comme getPath(), getAbsolutePath(), et getCanonical() path que Java fournit pour obtenir le chemin d’un fichier.

De plus, nous avons vu comment le chemin change en fonction du répertoire et du dossier du fichier et du projet en cours. Nous avons également créé et lu des fichiers à titre de démonstration.

Ces programmes, cependant, ne fonctionneront pas sur des compilateurs en ligne.

Article connexe - Java File

Article connexe - Java Path