gpt4 book ai didi

java - 如何在javafx中捕获IOException

转载 作者:行者123 更新时间:2023-12-01 20:19:59 25 4
gpt4 key购买 nike

我正在尝试通过按 JavaFx 中的按钮将数据写入文本文件。然而,唯一的问题是,当我尝试在按钮处理方法中使用“抛出 IOException”语句时,事情似乎不起作用。这是我的代码。

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.Group;
import javafx.scene.control.Button;
import java.io.*;
import java.io.File;
import java.io.FileInputStream;

public class testingFx extends Application{
//Create controls
private Button write;
private Scene main;
private Button Exit;
private Scene sceneMain;
private File records;
private FileWriter fw;

public static void main(String[] args){
launch(args);
}

@Override

public void start(Stage stage) throws IOException{

//Create new file
records = new File("records.txt");
records.createNewFile();
//Create FileWriter
fw = new FileWriter(records);

//Create root, format controls, scene, etc...
Group root = new Group();
write = new Button();
write.setText("Write");
write.setOnAction(this::processButtonPress);
root.getChildren().addAll(write);
main = new Scene(root,300,300);
stage.setScene(main);
stage.show();
}
public void processButtonPress(ActionEvent event) throws IOException{
if (event.getSource() == write){
//On button press write to file
fw.write("Testing file writing");
//Close filewriter
fw.close();
}
}
}

我试图在网上找到答案,但我被教导处理按钮按下的方式与大多数其他示例不同(显示 (this::processButtonPress) 的部分)。我不确定使用 try/catch 语句是否对我有帮助,因为我对此没有任何经验,请原谅我。我具体收到的错误是“错误:方法引用中抛出不兼容的类型 IOException”。感谢您的帮助。

我试图让这个问题成为主题并且易于解决。如果有任何明显的问题,请告诉我。

最佳答案

我建议使用try-with-resources statement自动关闭您的 writer。

您也可以像这样实现操作处理程序:

write.setOnAction(event -> {
if (event.getSource() == write) {
try {
try (FileWriter fw = new FileWriter(records)) {
//On button press write to file
fw.write("Testing file writing");
}
} catch (IOException e) {
// TODO process the exception properly
e.printStackTrace();
}
}
});

关于java - 如何在javafx中捕获IOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44977249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com