如何使用变量为 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);
现在我有一个文本文件,可以将其硬编码为 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);