javafx gui qui ouvre un fichier texte, comment lire ce qui est dans le fichier texte et éditer/enregistrer le fichier texte [dupliquer]


Cette question a déjà une réponse ici:

J'ai écrit du code dans JavaFX pour ouvrir un fichier texte et mon code l'ouvre mais il ne montre rien à l'intérieur du fichier texte. et aussi juste pour le plaisir je voulais savoir quelle est la meilleure façon d'éditer le fichier texte puis d'enregistrer le fichier texte avec le modifie l'utilisateur qui vient de faire. des conseils seraient grandement appréciés.

Voici mon code:

 package blah;
 import javafx.application.Application;
 import javafx.stage.Stage;
 import javafx.stage.FileChooser;
 import javafx.scene.Scene;
 import javafx.scene.layout.VBox;
 import javafx.scene.layout.HBox;
 import javafx.scene.text.Text;
 import javafx.scene.control.Button;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import java.io.File;

public class blah
    extends Application {

private Text actionStatus;
private Stage savedStage;


public static void main(String [] args) {

    Application.launch(args);
}

@Override
public void start(Stage primaryStage) {
    Button open = new Button("open");
    open.setOnAction(new SingleFcButtonListener());
    HBox open1 = new HBox(10);
    open1.getChildren().addAll(open);
    Button save = new Button("Save");
            HBox save1 = new HBox(10);
            save1.getChildren().addAll(save);

    actionStatus = new Text();



    VBox vbox = new VBox(30);
    vbox.getChildren().addAll( open1,save1,  actionStatus);
    Scene scene = new Scene(vbox, 500, 300); 
    primaryStage.setScene(scene);
    primaryStage.show();
    savedStage = primaryStage;
}

private class SingleFcButtonListener implements EventHandler<ActionEvent> {

    @Override
    public void handle(ActionEvent e) {

        showSingleFileChooser();
    }
}

private void showSingleFileChooser() {

    FileChooser fileChooser = new FileChooser();
    File selectedFile = fileChooser.showOpenDialog(null);

    if (selectedFile != null) {

        actionStatus.setText("File selected: " + selectedFile.getName());
    }

   }

}
Author: user861594, 2016-06-12

1 answers

Vous pouvez utiliser BufferedReader ou Scanner pour lire le fichier:

BufferedReader:

try (BufferedReader reader = new BufferedReader(new FileReader(new File("file.txt")))) {

        String line;
        while ((line = reader.readLine()) != null)
            System.out.println(line);

    } catch (IOException e) {
        e.printStackTrace();
    }
}

Scanner:

try (Scanner scanner = new Scanner(new File("file.txt"))) {

        while (scanner.hasNext())
            System.out.println(scanner.next());

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
 }

Vous pouvez utiliser PrintWriter ou FileWriter(avec BufferedWriter) pour écrire dans un fichier:

FileWriter:

   FileWriter fw = new FileWriter(file.getAbsoluteFile());
   BufferedWriter bw = new BufferedWriter(fw);
   bw.write(content);
   bw.flush();
   bw.close();

Exemple ici:

PrintWriter:

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

Prises à partir de ici

 1
Author: GOXR3PLUS, 2017-05-23 10:34:01