Importation d'une saisie dans une fichier.txt

Signaler
Messages postés
1
Date d'inscription
lundi 3 mai 2021
Statut
Membre
Dernière intervention
3 mai 2021
-
Messages postés
16335
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 mai 2021
-
Bonjour à tous,

Grace à la JFrame de eclipse, j'ai créer une fenêtre permettant de saisir une zone de texte

j'aimerai lorsque je saisie un pseudo dans la bar de saisi, qu'il s'inscrive dans mon fichier.txt ("pseudo.txt") lorsque je clic sur jouer, et dans un futur proche, j'aimerai que lorsque je clic sur le bouton jouer, le fichier.txt soit parcouru afin de voir si le pseudo existe deja pour que le joueur ait son meilleur score.

Voici l'état de mon algorithme à ce jour du 03/05/2021 :
Ici c'est la création de ma bar ou je peux saisir une chaine de caractere :
textField = new JTextField();
textField.setOpaque(false);
panel_10.add(textField);
textField.setColumns(10);

Ici, la création du bouton jouer qui me renvoit à la méthode clic jouer :
JButton btnNewButton = new JButton("JOUER");
btnNewButton.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
        clicjouer();

Ici, la methode clicjouer() qui, j'aimerai, parcours le fichier "pseudo.txt" afin de voir si le pseudo saisi existe dedans et stock les nouveaux pseudos saisi dans ce meme fichier nommé "pseudo.txt" :
protected void clicjouer(){
    String pseudo = textField.getText();
    try {
        FileWriter out = new FileWriter(new File("pseudo.txt"));
        out.write("….. \n");
        out.flush();
        out .close();
    }

j'ai un partie du code lecture de fichier mais je ne sais pas comment l'utiliser, la voici :
Lecture d'un fichier
public void lectureFichier(String nomfichier) {
    try{
        BufferedReader entree = new BufferedReader(new FileReader(nomfichier));
        String ligne;
        do {
            ligne = entree.readLine();
            if (ligne!=null) {
                //traitement de la ligne
            }
        } while (ligne!=null);
        entree.close();
    } catch (IOException ex) { }
}

1 réponse

Messages postés
16335
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 mai 2021
2 829
Bonjour,

Tu peux faire quelque chose comme ça :

import java.io.*;
import java.nio.file.*;
import java.util.*;

private static final Path PSEUDO_FILE_PATH = Paths.get("pseudo.txt");

private static List<String> lectureFichier(){
    try {
        return Files.readAllLines(PSEUDO_FILE_PATH);
    } catch (NoSuchFileException e) {
        return new ArrayList<>();
    } catch (IOException e) {
        throw new UncheckedIOException(e);
    }
}

private static void ecritureFichier(List<String> lines) {
    try {
        Files.write(PSEUDO_FILE_PATH, lines);
    } catch (IOException e) {
        throw new UncheckedIOException(e);
    }
}

private JTextField textField = new JTextField();
private List<String> pseudos = lectureFichier();

private void clicjouer(){
    String pseudo = textField.getText();
    if (!pseudos.contains(pseudo)) {
        pseudos.add(pseudo);
        ecritureFichier(pseudos);
    }
}