Comment Créer un Fichier en Java
Créer un nouveau fichier en Java, ce n'est pas une chose difficile. A l'aide de cet article, les débutants peuvent apprendre créer un nouveau fichier et ensuite y écrire en Java.
Donc, premièrement apprenons comment créer des nouveaux fichiers en Java.
Il y a plusieurs manières de faire ça. Dans cet article, nous allons découvrir 3 façons de créer des fichiers. Allons-y.
1. Utilisez la classe java.io.File
Lorsque vous initialisez l'objet File, vous fournissez la nom de fichier et ensuite appelez la méthode createNewFile(), qui crée automatiquement un nouveau fichier vide nommé par le chemin abstrait, si un fichier de ce nom n'existe pas encore.
Cette méthode retourne true, si le fichier nommé n'existe pas et a été successivement créé. La méthode retourne false si le fichier existe. Elle jète aussi java.io.IOException quand elle ne peut pas créer un fichier. Le fichier créé et vide et a zéro octets.
Notez que cette méthode va seulement créer un fichier, mais pas écrire un contenu.
// Programme Java pour démontrer la méthode createNewFile()
import java.io.File;
public class FileCreator {
public static void main(String args[])
{
try {
// Recevoir le fichier
File f = new File("D:\\example.txt");
// Créer un nouveau fichier
// Vérifier s'il n'existe pas
if (f.createNewFile())
System.out.println("File created");
else
System.out.println("File already exists");
}
catch (Exception e) {
System.err.println(e);
}
}
}
Lorsque vous compiler et and éxecutez le programme, vous y allez avoir le résultat suivant:
Résultat
Fichier créé (File created)
2. Utilisez la classe java.io.FileOutputStream
Si vous voulez créer un nouveau fichier et y écrire quelque chose au même temps, vous pouvez utiliser la méthode FileOutputStream.write. Cette méthode crée automatiquement un nouveau fichier et y écrit quelque contenu.
La méthode FileOutputStream est utilisée pour écrire flux d'octets bruts tels que des données d'image. Si vous voulez écrire données orientées caractères, il vaut mieux utiliser FileWriter.
Ici trouvez un code simple pour voir son usage:
Exemple
String fileData = "Some Test";
FileOutputStream fos = new FileOutputStream("D:\\example.txt");
fos.write(fileData.getBytes());
fos.flush();
fos.close();
3. Utilisez Java NIO Files.write()
Utilisez la classe Java NIO Files pour créer un nouveau fichier et y écrire quelque contenu. Cette classe Java fournit la méthode write(Path path, byte[] bytes, OpenOption… options) qui écrit des octets à un fichier au chemin spécifié.
En utilisant la classe Files, c'est possible de créer, déplacer, copier, supprimer des fichiers et diréctoires. Elle peut aussi être utilisée pour lire et écrire dans un fichier.
Files.write() est une façon préférable pour créer un fichier, car vous ne vous inquiétez pas à propos de la fermeture des ressources IO.Cette classe a les paramètres suivants:
- lines - Un objet à parcourir sur les séquences de caractères. Écrire les lignes de texte dans un fichier. Chaque ligne est un séquence de caractères et est écrit au fichier en séquence avec chaque ligne terminée par le séparateur des ligne de plate-forme.
- options - Ce paramètre spécifie comment le fichier est créé ou ouvert. Si aucune option n'est spécifiée, alors il considère les options CREATE, TRUNCATE_EXISTING et WRITE par défaut. Cela signifie qu'il ouvre le fichier pour écrir et crée si le fichier n'existe pas ou it opens the file for writing and creates if the file does not exist or tronque le fichier existant à la taille 0 s'il existe.
- path - Spécifie le chemin à la ligne.
- cs - L'ensemble des caractères (charset) à utiliser pour encodage.
Tous les octets du tableau d'octets sont écrits dans le fichier. Cette méthode garantit que le fichier est fermé lorsque tous les octets ont été écrits et renvoie le chemin du fichier écrit.
Exemple
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FilesWriterExample {
public static void main(String[] args) {
Path path = Paths.get("D:/data/example.txt");
try {
String str = "Some write file Example";
byte[] bs = str.getBytes();
Path writtenFilePath = Files.write(path, bs);
System.out.println("Written content in file:\n"+ new String(Files.readAllBytes(writtenFilePath)));
} catch (Exception e) {
e.printStackTrace();
}
}
}