Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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 属性文件_Java - Fatal编程技术网

Java 属性文件

Java 属性文件,java,Java,出现lil问题时,我创建了一个属性文件: config.properties位于../resource/config.properties中 这是当前的文件: destinationPDF=D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/pdf/ destination="D:/Documents/NetBeansProjects/printing~subversion/fileupload/U

出现lil问题时,我创建了一个属性文件:

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");

它正在工作,没有EROR等,但destination和destinationPDF正在传递空值

我想知道是什么问题……我测试了您的代码,工作正常……您是遇到编译错误还是运行时错误

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/upload/
D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/Directory Files/directoryFiles.txt

我想知道问题出在哪里……我测试了你的代码,它工作正常……你是遇到编译错误还是运行时错误

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/upload/ D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/Directory Files/directoryFiles.txt

问题在于:

        // 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 + "/";
问题在于:

        // 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 + "/";

您似乎误解了文件的属性。它们只是数据。它们不包含Java代码,也不用于声明变量。要在属性文件中获取与密钥destinationPDF关联的值,需要调用

String destinationPDF = prop.getProperty("destinationPDF");
初始化prop变量并使用prop.loadnew FileInputStream加载文件后。。。。然后您将有一个用键的值初始化的变量


旁注:请遵守Java命名约定:变量以小写字母开头。

您似乎误解了属性文件是什么。它们只是数据。它们不包含Java代码,也不用于声明变量。要在属性文件中获取与密钥destinationPDF关联的值,需要调用

String destinationPDF = prop.getProperty("destinationPDF");
初始化prop变量并使用prop.loadnew FileInputStream加载文件后。。。。然后您将有一个用键的值初始化的变量



旁注:请遵守Java命名约定:变量以小写字母开头。

不编译吗?或在运行时出现错误??此外,在您的目标属性上有开始引号,但没有结束引号。destination=D:/Documents是一个打字错误,或者您在属性文件本身中有类似的错误吗?我还假设它没有找到您的.properties文件位置。它显示的是什么stacktrace?你在什么地方定义了prop变量了吗?对不起,它根本没有编译,它给了我错误的定义是未定义的,是的,D:/是一种类型,在真实的文件中,如果你的编译错误是未定义的变量定义,则没有,您的错误不在上面发布的代码中。不编译吗?或在运行时出现错误??此外,在您的目标属性上有开始引号,但没有结束引号。destination=D:/Documents是一个打字错误,或者您在属性文件本身中有类似的错误吗?我还假设它没有找到您的.properties文件位置。它显示的是什么stacktrace?你在什么地方定义了prop变量了吗?对不起,它根本没有编译,它给了我错误的定义是未定义的,是的,D:/是一种类型,在真实的文件中,如果你的编译错误是未定义的变量定义,则没有,您的错误不在上面发布的代码中。您的代码比OP多得多。他缺少变量的声明和初始化。如果您在上面发布了我的代码,我想我没有加载prop,是这样吗?你的代码比OP多得多。他缺少变量的声明和初始化。如果你在上面发布了我的代码,我想我没有加载道具,是这样吗?是的,我注释掉了目标变量,因为我希望从属性文件中使用它,而不是在class@user2065929然后应该删除使用该未定义变量的代码,这就是为什么会出现目标未定义错误。@user2065929:您对属性有误解。参见JB Nizet的回答,他解释了为什么不能在代码中使用属性文件中的键作为变量名。@user2065929-您错误地认为加载pro
perty文件在代码中创建变量。事实并非如此。它创建的只是一个字符串值字典,您可以通过字符串键查找。是的,我注释掉了目标变量,因为我希望从属性文件中使用它,而不是在class@user2065929然后应该删除使用未定义变量的代码,这就是为什么会出现“目标未定义”错误。@user2065929:您对属性有误解。参见JB Nizet的回答,他解释了为什么不能在代码中使用属性文件中的键作为变量名。@user2065929-您错误地认为加载属性文件会在代码中创建变量。事实并非如此。它创建的只是一个字符串值字典,您可以通过字符串键查找。此外,我没有看到他调用他的loadProp方法。好的,我已经编辑了它,现在我没有收到任何错误,但是destination and DesictionPDF正在传递一个空值,而不是来自文件的值,有什么想法吗?在加载属性文件之前,您正在从prop对象读取值。因此,prop中还没有属性。很抱歉,我不明白,代码的哪一部分位于错误的位置?public String destinationPDF=prop.getPropertydestinationPDF;:一旦调用新的YourObject,该字段就会初始化。显然,此时还没有调用对象上的loadProp方法,因为该对象甚至还不存在。这就像你试图从你正在构建的接收者那里喝水一样。收件人必须先构造,然后填充,然后只有您才能喝其中包含的内容。此外,我没有看到他调用loadProp方法。好的,我已经编辑了它,现在我没有收到任何错误,但是destination and destination PDF正在传递空值,而不是文件中的值,有什么想法吗?在加载属性文件之前,您正在从prop对象读取值。因此,prop中还没有属性。很抱歉,我不明白,代码的哪一部分位于错误的位置?public String destinationPDF=prop.getPropertydestinationPDF;:一旦调用新的YourObject,该字段就会初始化。显然,此时还没有调用对象上的loadProp方法,因为该对象甚至还不存在。这就像你试图从你正在构建的接收者那里喝水一样。接收者必须先构建,然后填充,然后只有你才能饮用其中包含的内容。