让我知道如何在java中从本地驱动器检索属性文件。我不想硬编码驱动器名。

让我知道如何在java中从本地驱动器检索属性文件。我不想硬编码驱动器名。,java,eclipse,Java,Eclipse,让我知道如何在java中从本地驱动器检索属性文件。我不想硬编码驱动器名。对于例如c:\app.properties,我希望将其作为输出。。在windows环境中,首先搜索所有驱动程序: import java.util.Properties; import java.io.*; public class ReadValues{ private static final String PROP_FILE="myConfig.properties"; public sta

让我知道如何在java中从本地驱动器检索属性文件。我不想硬编码驱动器名。对于例如c:\app.properties,我希望将其作为输出。。在windows环境中,首先搜索所有驱动程序:

import java.util.Properties;  
import java.io.*;  
public class ReadValues{  
   private static final String PROP_FILE="myConfig.properties";  
   public static void readPropertiesFile(){  
       try{  
         InputStream is = ReadValues.class.getResourceAsStream(PROP_FILE);  
         Properties prop = new Properties();  
             prop.load(is);  
         String directory = prop.getProperty("Directory");  
             String numberOfFiles = prop.getProperty("NumberOfFiles");  
         String  fileExtension = prop.getProperty("Extension");  
             is.close();  
      /* code to use values read from the file*/  
       }catch(Exception e){  
         System.out.println("Failed to read from " + PROP_FILE + " file.");  
       }  
   }  
  }  
File[]root=File.listRoots();

for(int i=0;iso..是否要在所有驱动器和文件夹中搜索属性文件?我相信OP希望从当前JVM进程的工作目录中检索驱动器号。您不能确定属性文件的位置吗?将其放在类路径中如何?您应该理解“驱动器号”这不是一个通用的操作系统概念,因此它在Java这样的可移植语言中没有什么意义。你应该使用一些其他标准,比如相对路径。扫描整个计算机的属性文件是个坏主意。你知道这需要多长时间吗?如果另一个程序恰好有一个同名的属性文件,而你需要错误地添加它?您应该在类路径中包含属性文件,或者让用户通过命令行属性指定它。我的确切要求是加载本地驱动器中存在的属性文件。我不想提及驱动程序名称。如何执行此操作?您非常含糊不清。是否要搜索以查找文件在本地驱动器上,您不想指定驱动器。对不起,我不知道您到底想要什么。为什么要这样做?指定文件的位置有什么不对?如果有多个本地驱动器,您希望发生什么?
File[] roots = File.listRoots();
for(int i=0;i<roots.length;i++)
    System.out.println("Root["+i+"]:" + roots[i]);