Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用变量为Java中的InputStream/.getResourceAsStream(variableForTextFiles)定义文件?_Java_Getresource - Fatal编程技术网

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

如何使用变量为Java中的InputStream/.getResourceAsStream(variableForTextFiles)定义文件?,java,getresource,Java,Getresource,现在我有一个文本文件,可以读取硬编码的klebsielamicro.txt。我需要的是一个变量,fileName,根据不同java文件中的模板选择动态地引入不同的txtfile名称 在文件Micro.java下: static void getFullMicroArray() throws IOException { InputStream in = Data.class.getResourceAsStream("KlebsiellaMicro.txt"); BufferedRe

现在我有一个文本文件,可以读取硬编码的klebsielamicro.txt。我需要的是一个变量,
fileName
,根据不同java文件中的模板选择动态地引入不同的txtfile名称

在文件
Micro.java
下:

static void getFullMicroArray() throws IOException
{
    InputStream in = Data.class.getResourceAsStream("KlebsiellaMicro.txt");
    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
    ...
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
位于名为
MainWindow.java的不同文件中的以下代码下:

static void getFullMicroArray() throws IOException
{
    InputStream in = Data.class.getResourceAsStream("KlebsiellaMicro.txt");
    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
    ...
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;
    }
    ...

如何传递此
文件名
变量以动态切换
getResourceAsStream
中的文件名?

实现此目的的一种方法是将Micro.java中的getFullMicroArray()函数更改为接受字符串变量getFullMicroArray(String fName)。然后在MainWindow.java中case语句的末尾调用getFullMicroArray(文件名)

然后在=Data.class.getResourceAsStream(“klebsielamicro.txt”)中更改
InputStream
to
InputStream in=Data.class.getResourceAsStream(fName)