有一个lil问题,我创建了一个属性文件:
资源位于../ config.properties /config.properties中
这是当前的文件:
destinationPDF=D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/pdf/
destination="D:/Documents/NetBeansProjects/printing~subversion/fileupload/Uploaded/
fileList =D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/Directory Files/directoryFiles.txt我已经做好属性文件了吗?
我还想访问这个文件并将变量加载到一个类中
我试过了
public void loadProp() {
try {
prop.load(new FileInputStream("../resources/config.properties"));
System.out.println(prop.getProperty("destinationPDF"));
System.out.println(prop.getProperty("destination"));
System.out.println(prop.getProperty("fileList"));
} catch (IOException ex) {
ex.printStackTrace();
}
}但是现在类不能编译了,因为它找不到变量的目的地,那么我如何从文件中加载变量,我还需要清除类中的变量吗?
如果这些是愚蠢的问题,很抱歉,这是第一次使用属性!
如果我正常地将变量放入如下所示,则不会得到此错误
private String destinationPDF = "D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/pdf/"; //USE ON TORNADO//"D:/My Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/pdf/";//USE ON PREDATOR 编辑:
现在就有
private Properties configProp = new Properties();
public void loadProps() {
InputStream in = this.getClass().getClassLoader().getResourceAsStream("../resources/config.properties");
try {
configProp.load(in);
} catch (IOException e) {
e.printStackTrace();
}
}编辑2:
public void loadProp() {
InputStream in = this.getClass().getClassLoader().getResourceAsStream("../resources/config.properties");
try {
prop.load(in);
System.out.println(prop.getProperty("destinationPDF"));
System.out.println(prop.getProperty("destination"));
System.out.println(prop.getProperty("fileList"));
} catch (IOException e) {
e.printStackTrace();
}
}
Properties prop = new Properties();
private String destinationPDF = prop.getProperty("destinationPDF");
public String destination = prop.getProperty("destination");它正在工作,没有错误等,但目的地和destinationPDF传递的是空值
发布于 2013-02-17 00:26:32
您似乎误解了属性文件是什么。它们只是数据。它们不包含Java代码,也不用于声明变量。要获取与属性文件中的键destinationPDF相关联的值,需要调用
String destinationPDF = prop.getProperty("destinationPDF");初始化prop变量并使用prop.load(new FileInputStream(...))加载文件之后。然后,您将使用键的值初始化一个变量。
附注:请遵守Java命名约定:变量以小写字母开头。
发布于 2013-02-17 00:25:28
问题出在这里:
// destination = "D:/Documents/NetBeansProjects/printing~subversion/fileupload/Uploaded/"; // main location for uploads (CHANGE THIS WHEN USING PREDATOR)
File theFile = new File(destination + "/" + username);
theFile.mkdirs();// will create a sub folder for each user (currently does not work, below hopefully is a solution) (DOES NOW WORK)
System.out.println("Completed Creation of folder");
NewDestination = destination + username + "/";您已经注释了destination变量,并在此处使用:
NewDestination = destination + username + "/";发布于 2013-02-17 00:18:56
我想知道是什么问题…我测试了你的代码,它工作fine...are你得到编译错误或运行时错误?
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class Test1 {
/**
* @param args
*/
public static void main(String[] args) {
new Test1().loadProp();
}
Properties prop = new Properties();
public void loadProp() {
try {
prop.load(new FileInputStream("c:/Test/Computer.txt"));
System.out.println(prop.getProperty("destinationPDF"));
System.out.println(prop.getProperty("destination"));
System.out.println(prop.getProperty("fileList"));
} catch (IOException ex) {
ex.printStackTrace();
}
}
}输出:
D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/pdf/ D:/Documents/NetBeansProjects/printing~subversion/fileupload/Uploaded/ D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/Directory文件/目录文件.txt
https://stackoverflow.com/questions/14912287
复制相似问题