java - 从 JFileChooser 创建 ArrayList 而不是硬编码选项

标签 java swing csv jfilechooser

我目前通过硬编码的 ArrayList 访问我的 .csv 文件。我希望能够选择该文件,而不是像当前那样对其进行硬编码。

我刚刚添加了 JFileChooser。我无法让 rowData 逐行读取通过 JOptionPane 选择的文件。我该怎么做?

    JFileChooser chooser = new JFileChooser();
    FileNameExtensionFilter filter = new FileNameExtensionFilter("CSV Files", "csv");
    chooser.setFileFilter(filter);
    int returnVal = chooser.showOpenDialog(null);
    if(returnVal == JFileChooser.APPROVE_OPTION)
    {
        System.out.println("You chose to open file: " + chooser.getSelectedFile().getName());
    }

我的原始代码从这里开始(没有注释行),并且它有效。我只是不想将其硬编码进去。

    ArrayList<String> rowData = new ArrayList<String>();
    FileConnections excelConn = new FileConnections();
    //rowData = excelConn.read(chooser);
    rowData = excelConn.read(new File("11738 IPACC INFINITY Unconfirmed OIVS Responses.csv"));

最佳答案

试试这个(顺便说一句,未经测试!):

JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("CSV Files", "csv");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(null);
if(returnVal == JFileChooser.APPROVE_OPTION)
{
    System.out.println("You chose to open file: " + chooser.getSelectedFile().getName());
    ArrayList<String> rowData = new ArrayList<String>();
    FileConnections excelConn = new FileConnections();
    rowData = excelConn.read(chooser.getSelectedFile());
}

相当于:

JFileChooser chooser = new JFileChooser();
chooser.setFileFilter(new FileNameExtensionFilter("CSV Files", "csv"));
if(chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
    System.out.println("You chose to open file: " + chooser.getSelectedFile().getName());
    ArrayList<String> rowData = new FileConnections().read(chooser.getSelectedFile());
}

关于java - 从 JFileChooser 创建 ArrayList 而不是硬编码选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17533699/

相关文章:

java - 运行 Spring Boot 命令行示例给出 `Could not find method run()`

java - 如何以编程方式触发 ComponentListener?

java - 使用 bufferedimage java swing 绘制多个形状

java - 设置 JTable 不可编辑

csv - 使用 MikTex 在 Latex 文档中包含带有 csvsimple 的四列以上的 CSV 文件

c - 使用 strtok() 在 c 中将字符串标记两次

xml - 在powershell中循环遍历子文件夹

java - Spring java POST 不起作用

java - 正则表达式语法 javafx

java - 如何仅对匹配我的正则表达式模式的字符串部分进行替换?