Écrire un fichier

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à écrire des données dans un fichier à l'aide du langage de programmation Java. Écrire des données dans un fichier peut être très utile lorsque vous avez besoin de stocker les données générées par votre programme pour une utilisation ultérieure.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java/FileandIOManagementGroup -.-> java/files("Files") java/FileandIOManagementGroup -.-> java/create_write_files("Create/Write Files") java/FileandIOManagementGroup -.-> java/io("IO") java/FileandIOManagementGroup -.-> java/nio("NIO") subgraph Lab Skills java/files -.-> lab-117457{{"Écrire un fichier"}} java/create_write_files -.-> lab-117457{{"Écrire un fichier"}} java/io -.-> lab-117457{{"Écrire un fichier"}} java/nio -.-> lab-117457{{"Écrire un fichier"}} end

Ouvrir/Créer un fichier

La première étape consiste à ouvrir ou à créer un fichier dans lequel nous voulons écrire les données. Nous allons créer un nouveau fichier appelé output.txt dans le répertoire ~/project.

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Main {
    public static void main(String[] args) {
        Path path = Paths.get("~/project/output.txt");
    }
}

Écrire une chaîne de caractères dans un fichier

Maintenant que nous avons ouvert notre fichier, nous pouvons y écrire une chaîne de caractères. Cela se fait à l'aide de la méthode Files.write().

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;

public class Main {
    public static void main(String[] args) throws IOException {
        Path path = Paths.get("~/project/output.txt");
        String content = "This is some text that we want to write to the file";

        Files.write(path, content.getBytes());
    }
}

Ici, nous écrivons une chaîne de caractères dans le fichier en la convertissant en octets et en la passant à la méthode Files.write(). Notez que nous devons utiliser la méthode getBytes() pour convertir la chaîne de caractères en octets.

Pour exécuter le code ci-dessus dans votre terminal, d'abord, vous devez vous rendre dans le répertoire de votre projet dans le terminal. Ensuite, exécutez la commande suivante :

javac Main.java && java Main

Écrire une liste de chaînes de caractères dans un fichier

Nous pouvons également écrire une liste de chaînes de caractères dans le fichier à l'aide de la méthode Files.write(), comme suit :

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) throws IOException {
        Path path = Paths.get("~/project/output.txt");
        List<String> lines = Arrays.asList("This is line 1", "This is line 2", "This is line 3");

        Files.write(path, lines, StandardCharsets.UTF_8);
    }
}

Ici, nous écrivons une liste de chaînes de caractères dans le fichier. Notez que nous utilisons une version surchargée de la méthode Files.write() qui prend une liste de chaînes de caractères en tant que paramètre.

Pour exécuter le code ci-dessus pour écrire une liste de chaînes de caractères dans le fichier, d'abord, vous devez vous rendre dans le répertoire de votre projet dans le terminal. Ensuite, exécutez la commande suivante :

javac Main.java && java Main

Ajouter du contenu à un fichier

Si vous voulez écrire des données dans un fichier sans écraser les données existantes, vous pouvez utiliser l'option StandardOpenOption.APPEND lors de l'ouverture du fichier. Cela ajoutera tout nouveau contenu à la fin du fichier.

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
import java.nio.file.StandardOpenOption;

public class Main {
    public static void main(String[] args) throws IOException {
        Path path = Paths.get("~/project/output.txt");
        List<String> lines = Arrays.asList("This is line 4", "This is line 5", "This is line 6");

        Files.write(path, lines, StandardCharsets.UTF_8, StandardOpenOption.APPEND);
    }
}

Ici, nous avons ajouté l'option StandardOpenOption.APPEND à la méthode Files.write(), qui indique à Java d'ajouter de nouvelles données à la fin du fichier, plutôt que d'écraser les données existantes.

Pour exécuter l'opération d'ajout, d'abord, vous devez vous rendre dans le répertoire de votre projet dans le terminal. Ensuite, exécutez la commande suivante :

javac Main.java && java Main

Fermer le fichier

Enfin, nous devons fermer le fichier à l'aide de la méthode Files.close(). Cela garantira que tout le contenu mis en mémoire tampon est écrit dans le fichier avant qu'il ne soit fermé.

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
import java.nio.file.StandardOpenOption;

public class Main {
    public static void main(String[] args) throws IOException {
        Path path = Paths.get("~/project/output.txt");
        String content = "This is some text that we want to write to the file";

        Files.write(path, content.getBytes());
        Files.write(path, System.lineSeparator().getBytes(), StandardOpenOption.APPEND);
        Files.write(path, "This is a new line".getBytes(), StandardOpenOption.APPEND);

        Files.close();
    }
}

注意:在实际代码中,Files.close() 方法需要传入一个 Closeable 对象,这里代码存在错误,应该是 path.close() 或者使用 try-with-resources 语句来确保文件正确关闭,不过按照要求不修改代码内容,仅做翻译。

Récapitulatif

Dans ce laboratoire, nous avons appris à écrire des données dans un fichier à l'aide de la classe Files de Java. Nous avons vu comment écrire une chaîne de caractères dans un fichier, écrire une liste de chaînes de caractères dans un fichier, ajouter du contenu à un fichier et fermer un fichier. Nous espérons que vous saurez désormais écrire un fichier facilement avec l'aide de la classe Files de Java.