📄Description

Ce code permet de sélectionner, lire, modifier et enregistrer un fichier texte.

✅Résultat

Untitled

Untitled

Untitled

🖥️Code createTxtFile.java

package create_txt_file;

import java.awt.EventQueue;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JButton;
import javax.swing.JFileChooser;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JScrollPane;

public class createTxtFile{

	private JFrame frame;
	JFileChooser j = new JFileChooser();
	private JButton btnEnregistrer;
	private JButton btnSelectionner;
	
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					createTxtFile window = new createTxtFile();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public createTxtFile() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		//Début paramétrage de la fênetre
		frame = new JFrame();
		frame.setVisible(true);
		frame.setTitle("Ma fênetre");
		frame.setBounds(100, 100, 400, 212);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);
		
		//Zone de texte positionner dans un JScrollPane en cas de débordement.
		JTextArea textArea = new JTextArea();
		textArea.setBounds(10, 10, 366, 124);
		JScrollPane scrollPane = new JScrollPane(textArea);
		scrollPane.setBounds(56, 5, 288, 129);
		frame.getContentPane().add(scrollPane);
		
		//Bouton permettant de sélectionner un fichier pour le visualiser ou le modifier.
		btnSelectionner = new JButton("Sélectionner un fichier");
		btnSelectionner.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				try {
					j.showSaveDialog(null); //Ouvre le selectionneur de fichier
					String chemin = j.getSelectedFile().getAbsolutePath();
					if(chemin.substring(chemin.length() - 4).equals(".txt")) {
						String contentOfTheFile = lire(chemin);
						textArea.setText(contentOfTheFile);
						btnEnregistrer.setVisible(true);
					}
					else {
						System.out.println("Only .txt files allowed.");
					}
				}catch(Exception error) {
					System.out.println("Error");
				}
			}
		});
		btnSelectionner.setBounds(10, 144, 171, 21);
		frame.getContentPane().add(btnSelectionner);
		
		//Bouton permettant d'enregistrer les modifications effectuées depuis la zone de texte.
		btnEnregistrer = new JButton("Enregistrer");
		btnEnregistrer.setVisible(false);
		btnEnregistrer.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				ecrire(j.getSelectedFile().getAbsolutePath(),textArea.getText());
				frame.dispose();
			}
		});
		btnEnregistrer.setBounds(274, 144, 102, 21);
		frame.getContentPane().add(btnEnregistrer);
	}
	
	private void ecrire(String chemin, String textAreaValue) {
		//ECRIRE
		try {
			//Si le fichier n'existe pas, il est créé.
			//fileWriter = new FileWriter("C:\\\\Users...\\\\fichier.txt",true);     Permet d'écrire à la suite sans écraser
			//fileWriter = new FileWriter("C:\\\\Users...\\\\fichier.txt");     	 Ecrit en écrasant
			FileWriter fileWriter = new FileWriter(chemin);
			BufferedWriter writer = new BufferedWriter(fileWriter);
			writer.write(textAreaValue);
			writer.newLine();
			writer.close();
		}catch(IOException e) {
			System.out.println("Erreur");
		}
	}
	
	private String lire(String chemin) {
		//LIRE
		try {
			FileReader fileReader = new FileReader(chemin); 
			BufferedReader reader = new BufferedReader(fileReader);
			String line;
			String total="";
			while((line = reader.readLine()) != null) {
				total = total + line + "\\n";
			}
			reader.close();
			System.out.println(total);
			return total;
		}catch(FileNotFoundException e) {
			System.out.println("File not found");
		}catch(IOException e) {
			System.out.println("File cannot be accessed");
		}
		return "";
	}
}

🌵Arborescence

Untitled