Java >> Tutoriel Java >  >> Java

Écriture de fichiers en Java (avec exemples)

La fonction createNewFile() en Java peut créer un fichier. Cette méthode produit une valeur booléenne :true si le fichier a été complété avec succès, false s'il existe déjà. Comme vous pouvez le voir, la procédure est enfermée dans un bloc try…catch. Il est requis car une exception IOException est levée si une erreur se produit. Par exemple, si le fichier ne peut pas être créé pour une raison quelconque.

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

public class CreateFile {  
  public static void main(String[] args) {  
    try {  
      File newObj = new File("codeunderscored.txt");  
      if (newObj .createNewFile()) {  
        System.out.println("File created: " + newObj.getName());  
      } else {  
        System.out.println("File already exists.");  
      }  
    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();  
    }  
  }  
}

Pour créer un fichier dans un répertoire particulier (ce qui nécessite une autorisation), spécifiez le chemin du fichier et échappez le caractère "\" avec des doubles barres obliques inverses (pour Windows). Sur Mac et Linux, saisissez la route, par exemple /Users/name/codeunderscored .txt.

import java.io.File;
import java.io.IOException;
  
public class CreateFileDir {  
  public static void main(String[] args) {  
    try {  
      File newObj = new File("Users/Code\\codeunderscored.txt");  
      if (newObj .createNewFile()) {  
        System.out.println(" Created file: " + newObj.getName());  
        System.out.println("Absolute path: " + newObj.getAbsolutePath());  
      } else {  
        System.out.println("File is already there.");  
      }  
    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();  
    }  
  }  
}

Comment écrire dans un fichier

La classe FileWriter et sa méthode write() sont utilisées dans l'exemple suivant pour écrire du texte dans le fichier que nous avons créé précédemment. Il est important de se rappeler qu'une fois que vous avez fini d'écrire dans le fichier, vous devez le fermer avec la méthode close() :

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

public class WriteToFile {  
  public static void main(String[] args) {  
    try {  
      FileWriter newWriter = new FileWriter("codeunderscored .txt");
      newWriter.write("Writing to files in Java is easy peasy!");
      newWriter.close();
      System.out.println("Completed writing to the file.");
    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }  
}

Utilisation de la classe BufferedWriter

BufferedWriter est une classe qui vous permet d'écrire du texte tamponné. Il est utilisé pour créer un flux de sortie de caractères à partir du texte. Les caractères, les chaînes et les tableaux peuvent tous être écrits avec. Il a une taille de tampon par défaut ; cependant, il peut être changé en une taille de tampon énorme. Si aucune sortie d'invite n'est requise, il est préférable d'encapsuler cette classe avec n'importe quelle classe d'écriture pour écrire des données dans un fichier.

// Program for writing into a File using BufferedWriter Class

// Importing java input output libraries

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

// Main class
public class BufferedWriterClass {


	public static void main(String[] args)
	{

		// Assigning the file content as input to illustrate
		String text = "Welcome to Codeunderscored ";

		// Try block to check for exceptions
		try {

			// Create a BufferedWriter object
			BufferedWriter bfWriter
				= new BufferedWriter(new FileWriter(
					"/Users/Code/Desktop/underscored.docx"));

			// Writing text to the file
			bfWriter.write(text);

			// Printing file contents
			System.out.print(text);

			// Display message showcasing program execution success
			System.out.print(
				"content added to file successfully");

			// Closing the BufferedWriter object
			bfWriter.close();
		}

		// Catch block for handling exceptions that occur
		catch (IOException e) {

			// Printing the exception message on the console
			System.out.print(e.getMessage());
		}
	}
}

Utilisation de la classe FileOutputStream

La classe BufferedWriter est utilisée pour écrire dans un fichier dans cet exemple. Cependant, comme cette classe a une grande taille de tampon, elle peut écrire d'énormes quantités de données dans le fichier. Cela nécessite également la création d'un objet BufferedWriter, tel que FileWriter, pour écrire du contenu dans le fichier.

Il est utilisé pour enregistrer les données de flux non traitées dans un fichier. Seul du texte peut être écrit dans un fichier à l'aide des classes FileWriter et BufferedWriter, mais des données binaires peuvent être écrites à l'aide de la classe FileOutputStream.

L'exemple suivant montre comment utiliser la classe FileOutputStream pour écrire des données dans un fichier. Cela nécessite également la création d'un objet de classe avec le nom de fichier pour écrire des données dans un fichier. Le contenu de la chaîne est transformé en un tableau d'octets, qui est ensuite écrit dans le fichier à l'aide de la méthode write().

// Program for Writing to a File using the FileOutputStream Class


import java.io.FileOutputStream;
import java.io.IOException;

public class WriteUsingFileOutputStream {


	public static void main(String[] args)
	{

		// Assigning the file contents

		String fileContent = "Codeunderscored extravaganza ";
		FileOutputStream outputStream = null;

		// Try block to check if exception occurs
		try {

			// Creating an object of the FileOutputStream
			outputStream = new FileOutputStream("underscored.txt");

			// Storing byte contents from the string
			byte[] strToBytes = fileContent.getBytes();

			// Writing directly into the given file
			outputStream.write(strToBytes);

			// Printing the success message  is optional
			System.out.print(
				"Content added to File successfully.");
		}

		// Catch block handling the exceptions
		catch (IOException e) {

			// Showing the exception/s
			System.out.print(e.getMessage());
		}

		// use of the finally keyword with the try-catch block – to execute irregardless of the 		// exception

		finally {

			// object closure
			if (outputStream != null) {

				//  Second try catch block enforces file closure
				// even if an error happens
	
				try {

					// file connections closure
					// when no exception has happen
					outputStream.close();
				}

				catch (IOException e) {

					// shows exceptions that are encountered
					System.out.print(e.getMessage());
				}
			}
		}
	}
}

La fonction writeString()

La version 11 de Java prend en charge cette approche. Quatre paramètres peuvent être passés à cette méthode. L'emplacement du fichier, la séquence de caractères, le jeu de caractères et les options sont tous ces éléments. Les deux premiers paramètres sont requis pour que cette méthode écrive dans un fichier. Il enregistre les caractères en tant que contenu du fichier. Il renvoie le chemin d'accès au fichier et peut lever quatre types d'exceptions différents. Lorsque le contenu du fichier est court, il est préférable de l'utiliser.

Il montre comment placer des données dans un fichier à l'aide de la fonction writeString() de la classe Files. Une autre classe, Path, est utilisée pour associer le nom du fichier au chemin de destination du contenu.

La fonction readString() de la classe Files lit le contenu de tout fichier existant. Le code utilise ensuite ce dernier pour s'assurer que le texte est correctement écrit dans le fichier.

// Program for Writing Into a File using the writeString() Method

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;

// Main class
public class WriteStringClass {

	public static void main(String[] args)
		throws IOException
	{
		//file content assigning
		String text
			= "Codeunderscored extravaganza!";

		// definition of the file' name
		Path fileName = Path.of(
			"/Users/Code/Desktop/undercored.docx");

		// Writing into the file
		Files.writeString(fileName, text);

		// Read file contents
		String fileContent = Files.readString(fileName);

		// Printing the files' content
		System.out.println(fileContent);
	}
}

Conclusion

La classe Java FileWriter est utilisée pour écrire des données orientées caractères dans un fichier. C'est une classe orientée caractères puisqu'elle est utilisée dans la gestion des fichiers Java. Il existe de nombreuses façons d'écrire dans un fichier en Java, car il existe de nombreuses classes et méthodes qui peuvent accomplir cela. Ils incluent la fonction writeString(), la classe FileWriter, la classe BufferedWriter et le FileOutputStream.


Balise Java