5

I wrote code in javaFX to open a text file and my code opens it but it doesn't show anything inside the text file. and also just for fun I wanted to know whats the best way to go about editing the text file and then saving the text file with the edits the user just made. any tips would be greatly appreciated.

here is my 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());
    }

   }

}
user861594
  • 5,733
  • 3
  • 29
  • 45
Progamminnoob
  • 293
  • 3
  • 4
  • 14
  • 1
    Duplicate of [Reading a plain text file in Java](http://stackoverflow.com/questions/4716503/reading-a-plain-text-file-in-java) (reading) and [How to create a file and write to a file in Java?](http://stackoverflow.com/questions/2885173/how-to-create-a-file-and-write-to-a-file-in-java) (writing). – fabian Jun 12 '16 at 07:40
  • @Programminnoob HOw about you google first, you will find your answer within minutes – Marcel Jun 12 '16 at 10:31

1 Answers1

6

You can use BufferedReader or Scanner for reading the file:

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();
    }
 }

You can use PrintWriter or FileWriter(with BufferedWriter) to write to a file:

FileWriter:

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

example here:

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();

taken from here

Community
  • 1
  • 1
GOXR3PLUS
  • 6,877
  • 9
  • 44
  • 93