gpt4 book ai didi

Java - 文件保存不起作用

转载 作者:行者123 更新时间:2023-12-02 04:37:47 25 4
gpt4 key购买 nike

我想将 ArrayList 的内容保存到文件(用户应该选择 .txt 的位置),但我不确定如何执行此操作,因为该代码无法正常工作。

你知道如何做到这一点吗?

package vizsgaquiz;

import java.io.File;
import java.util.ArrayList;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.FileChooser;
import javafx.stage.Stage;


public class VizsgaQuiz extends Application {

ArrayList<String> kerdeslista = new ArrayList<String>();
String a ="a";


@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("Foablak.fxml"));

Scene scene = new Scene(root);

stage.setScene(scene);
stage.setTitle("Quiz Játék");
stage.show();
save();
}

public void save(){
kerdeslista.add(a);

FileChooser fileChooser = new FileChooser();

//Set extension filter
FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("TXT files (*.txt)", "*.txt");
fileChooser.getExtensionFilters().add(extFilter);

//Show save file dialog
File file = fileChooser.showSaveDialog(stage);

if(file != null){
SaveFile(kerdeslista, file);
}
}



/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}

}

最佳答案

有几个问题可能导致此问题。对于初学者来说,这段代码无法编译。这是因为您在 save 方法中调用了变量 stage,而该变量在 start 方法中“死亡”了。要在 save 中调用 stage,您需要将其传递给 save 或将其保存为字段。第二个问题是方法SaveFile似乎不存在。 SaveFile 的示例可能类似于下面的代码。请注意,我更新了方法 save 以接受 Stage,并将方法 SaveFile 的名称更改为 saveFile 以匹配 Java 命名约定。另外,下面的代码在新行上打印 arraylist 的每个值,这可能是您不希望看到的。

    package vizsgaquiz;

import java.io.File;
import java.io.PrintWriter;
import java.util.ArrayList;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.FileChooser;
import javafx.stage.Stage;


public class VizsgaQuiz extends Application {

ArrayList<String> kerdeslista = new ArrayList<String>();
String a ="a";


@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("Foablak.fxml"));

Scene scene = new Scene(root);

stage.setScene(scene);
stage.setTitle("Quiz Játék");
stage.show();
save(stage);
}

public void save(Stage stage){
kerdeslista.add(a);

FileChooser fileChooser = new FileChooser();

//Set extension filter
FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("TXT files (*.txt)", "*.txt");
fileChooser.getExtensionFilters().add(extFilter);

//Show save file dialog
File file = fileChooser.showSaveDialog(stage);

if(file != null){
saveFile(kerdeslista, file);
}
}


/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}

public static void saveFile(ArrayList<String> list, File file) {
try {
PrintWriter out = new PrintWriter(file);
for (String val : list)
out.println(val + "\n");
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}

}

关于Java - 文件保存不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30547146/

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