使用File Chooser加载文本文件,然后使用Scanner JavaFX

时间:2015-12-02 07:58:46

标签: javafx filechooser

我正在尝试使用File Chooser加载文本文件。然后我需要在文件上使用扫描程序,因为我正在对字符串进行标记。在我使用项目文件中的文件硬编码文件名之前,现在我希望能够从任何地方获取所需的文件。

我当前的代码

public void LoadCustomer() throws IOException
{
    Stage stages = new Stage();
    FileChooser fileChooser = new FileChooser();
    fileChooser.setTitle("Open Resource File");
    fileChooser.showOpenDialog(stages);
    File CustomerList;
    CustomerList = new File(fileChooser.getInitialDirectory().getAbsolutePath());
    String line;
    String tokens[];
    int iTemp;
    String strTemp;
    Double dTemp;

    int i20DTemp;
    Customer cTemp;
    try {
        Scanner inputCustomer = new Scanner(CustomerList);
        while (inputCustomer.hasNextLine())

我认为我的问题出现在CustomerList = new File区域附近,因为那是我的代码崩溃。

1 个答案:

答案 0 :(得分:0)

用户选择的文件由fileChooser.showOpenDialog返回。 getInitialDirectory只返回FileChooser最初显示的目录。如果未分配任何值,则返回null,这会导致异常,因为您尝试调用该对象的方法。

File CustomerList = fileChooser.showOpenDialog(stages);
if (CustomerList == null) {
    // user canceled dialog
} else {
    // file was selected
}

顺便说一下:您也可以将null传递给showOpenDialog方法。不需要为此目的创建新的Stage(即使您稍后使用Stage,我也不建议这样做。)