Question Comment créer un fichier et y écrire en Java?


Quel est le moyen le plus simple pour créer et écrire dans un fichier (texte) en Java?


1130
2018-05-21 19:58


origine


Réponses:


Notez que chacun des exemples de code ci-dessous peut jeter IOException. Essayer / attraper / finalement les blocs ont été omis pour la brièveté. Voir ce tutoriel Pour plus d'informations sur la gestion des exceptions.

Créer un fichier texte (notez que cela écrasera le fichier s'il existe déjà):

PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
writer.println("The first line");
writer.println("The second line");
writer.close();

Créer un fichier binaire (cela écrasera aussi le fichier):

byte data[] = ...
FileOutputStream out = new FileOutputStream("the-file-name");
out.write(data);
out.close();

Java 7+ les utilisateurs peuvent utiliser le Files classe pour écrire dans des fichiers:

Créer un fichier texte:

List<String> lines = Arrays.asList("The first line", "The second line");
Path file = Paths.get("the-file-name.txt");
Files.write(file, lines, Charset.forName("UTF-8"));
//Files.write(file, lines, Charset.forName("UTF-8"), StandardOpenOption.APPEND);

Créer un fichier binaire:

byte data[] = ...
Path file = Paths.get("the-file-name");
Files.write(file, data);
//Files.write(file, data, StandardOpenOption.APPEND);

1454
2018-05-21 20:06



En Java 7 et plus:

try (Writer writer = new BufferedWriter(new OutputStreamWriter(
              new FileOutputStream("filename.txt"), "utf-8"))) {
   writer.write("something");
}

Il y a des utilités utiles pour cela:

Notez aussi que vous pouvez utiliser un FileWriter, mais il utilise l'encodage par défaut, ce qui est souvent une mauvaise idée - il est préférable de spécifier explicitement l'encodage.

Ci-dessous est la réponse originale, préalable à Java 7


Writer writer = null;

try {
    writer = new BufferedWriter(new OutputStreamWriter(
          new FileOutputStream("filename.txt"), "utf-8"));
    writer.write("Something");
} catch (IOException ex) {
    // Report
} finally {
   try {writer.close();} catch (Exception ex) {/*ignore*/}
}

Voir également: Lecture, écriture et création de fichiers (inclut NIO2).


355
2018-05-21 20:09



Si vous avez déjà le contenu que vous voulez écrire dans le fichier (et non généré à la volée), le java.nio.file.Files L'ajout de Java 7 dans les E / S natives constitue le moyen le plus simple et le plus efficace d'atteindre vos objectifs.

Fondamentalement, la création et l'écriture dans un fichier ne sont qu'une ligne, en plus un appel de méthode simple!

L'exemple suivant crée et écrit dans 6 fichiers différents pour illustrer comment il peut être utilisé:

Charset utf8 = StandardCharsets.UTF_8;
List<String> lines = Arrays.asList("1st line", "2nd line");
byte[] data = {1, 2, 3, 4, 5};

try {
    Files.write(Paths.get("file1.bin"), data);
    Files.write(Paths.get("file2.bin"), data,
            StandardOpenOption.CREATE, StandardOpenOption.APPEND);
    Files.write(Paths.get("file3.txt"), "content".getBytes());
    Files.write(Paths.get("file4.txt"), "content".getBytes(utf8));
    Files.write(Paths.get("file5.txt"), lines, utf8);
    Files.write(Paths.get("file6.txt"), lines, utf8,
            StandardOpenOption.CREATE, StandardOpenOption.APPEND);
} catch (IOException e) {
    e.printStackTrace();
}

118
2018-04-22 14:01



public class Program {
    public static void main(String[] args) {
        String text = "Hello world";
        BufferedWriter output = null;
        try {
            File file = new File("example.txt");
            output = new BufferedWriter(new FileWriter(file));
            output.write(text);
        } catch ( IOException e ) {
            e.printStackTrace();
        } finally {
          if ( output != null ) {
            output.close();
          }
        }
    }
}

69
2018-05-21 20:09



Voici un petit exemple de programme pour créer ou écraser un fichier. C'est la version longue, donc il peut être compris plus facilement.

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;

public class writer {
    public void writing() {
        try {
            //Whatever the file path is.
            File statText = new File("E:/Java/Reference/bin/images/statsTest.txt");
            FileOutputStream is = new FileOutputStream(statText);
            OutputStreamWriter osw = new OutputStreamWriter(is);    
            Writer w = new BufferedWriter(osw);
            w.write("POTATO!!!");
            w.close();
        } catch (IOException e) {
            System.err.println("Problem writing to the file statsTest.txt");
        }
    }

    public static void main(String[]args) {
        writer write = new writer();
        write.writing();
    }
}

39
2018-04-09 18:05



Utilisation:

try (Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("myFile.txt"), StandardCharsets.UTF_8))) {
    writer.write("text to write");
} 
catch (IOException ex) {
    // Handle me
}  

En utilisant try() fermera le flux automatiquement. Cette version est courte, rapide (mise en mémoire tampon) et permet de choisir l'encodage.

Cette fonctionnalité a été introduite dans Java 7.


30
2018-04-19 14:35



Un moyen très simple de créer et d'écrire dans un fichier en Java:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;

public class CreateFiles {

    public static void main(String[] args) {
        try{
            // Create new file
            String content = "This is the content to write into create file";
            String path="D:\\a\\hi.txt";
            File file = new File(path);

            // If file doesn't exists, then create it
            if (!file.exists()) {
                file.createNewFile();
            }

            FileWriter fw = new FileWriter(file.getAbsoluteFile());
            BufferedWriter bw = new BufferedWriter(fw);

            // Write in file
            bw.write(content);

            // Close connection
            bw.close();
        }
        catch(Exception e){
            System.out.println(e);
        }
    }
}

Référence: Fichier create Exemple en Java


30
2017-11-19 16:07