有一个问题,我创建了一个属性文件:
config.properties位于../ resource / 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");
它正在工作,没有错误等,但destination和destinationPDF正在传递空值
答案 0 :(得分:3)
您似乎误解了属性文件是什么。他们只是数据。它们不包含Java代码,也不用于声明变量。要获取与属性文件中的键destinationPDF
关联的值,您需要调用
String destinationPDF = prop.getProperty("destinationPDF");
初始化prop
变量并使用prop.load(new FileInputStream(...))
加载文件后。然后,您将使用键的值初始化变量。
附注:请尊重Java命名约定:变量以小写字母开头。
答案 1 :(得分:1)
问题出在这里:
// 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 + "/";
您已在此处评论了目标变量:
NewDestination = destination + username + "/";
答案 2 :(得分:0)
我想知道这个问题是什么......我测试了你的代码,它工作得很好......你得到编译错误或运行时错误吗?
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:/文档/的NetBeansProjects /印刷〜颠覆/文件上传/网络/资源/ PDF / d:/文件/的NetBeansProjects /印刷〜颠覆/文件上传/上传/ D:/ Documents / NetBeansProjects / printing~subversion / fileupload / web / resources / Directory Files / directoryFiles.txt