如何使用变量为 Java 中的 InputStream / .getResourceAsStream(variableForTextFiles) 定义文件?

How can I use a variable to define a file for InputStream / .getResourceAsStream(variableForTextFiles) in Java?

现在我有一个文本文件,可以将其硬编码为 KlebsiellaMicro.txt。我需要的是一个变量 fileName,用于根据不同 java 文件中的模板选择动态提取不同的 txt 文件名。

文件Micro.java下:

static void getFullMicroArray() throws IOException
{
    InputStream in = Data.class.getResourceAsStream("KlebsiellaMicro.txt");
    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
    ...

变量 fileName 在名为 MainWindow.java 的不同文件中的以下代码下:

JButton btnLoadMicroTemplate = new JButton("Load Template");
btnLoadMicroTemplate.addActionListener(new ActionListener() {


public void actionPerformed(ActionEvent e) {
    String fileName = null;
    String templateSelection = comboTemplateSelect.getSelectedItem().toString();
    switch(templateSelection){
        //case must match dropdown selections exactly
        case "MRSA Culture Respiratory": fileName = "MRSARespiratory.txt";
        case "Klebsiella Non-Culture Blood": fileName = "KlebsiellaMicro.txt";
        default: fileName = "MRSARespiratory.txt";
                 break;
    }
    ...

如何传递这个 fileName 变量来动态切换 getResourceAsStream 中的文件名?

实现此目的的一种方法是更改​​ Micro.java 中的 getFullMicroArray() 函数以接收字符串变量 getFullMicroArray(String fName)。然后在 MainWindow.java.

中的 case 语句末尾调用 getFullMicroArray(fileName)

然后将InputStream in = Data.class.getResourceAsStream("KlebsiellaMicro.txt");改为InputStream in = Data.class.getResourceAsStream(fName);