当前位置: 首页 > 面试题库 >

JAVA .properties文件

薛元忠
2023-03-14
问题内容

有一个小问题,我已经创建了一个属性文件:

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正在传递空值


问题答案:

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

String destinationPDF = prop.getProperty("destinationPDF");

在初始化prop变量并使用加载文件后prop.load(new FileInputStream(...))。然后,您将获得一个使用键值初始化的变量。

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



 类似资料:
  • 主要内容:文件系统对象(FSO),Write命令还可以读取Excel文件,并使用VBA将单元格的内容写入文本文件。VBA允许用户使用两种方法处理文本文件 - 文件系统对象() 使用命令 文件系统对象(FSO) 顾名思义,对象帮助开发人员使用驱动器,文件夹和文件。 在本节中,我们将讨论如何使用。 编号 对象类型 描述 1 是一个对象。 包含收集有关连接到系统的驱动器的信息的方法和属性。 2 是一个集合。 它提供了连接到系统的驱动器的物理或逻辑列表

  • hana for visual studio 2017 库所提供的所有头文件的列表 boost hana concept applicative.hpp comonad.hpp comparable.hpp constant.hpp euclidean_ring.hpp foldable.hpp functor.hpp group.hpp hashable.hpp integral_constan

  • 问题内容: 我需要处理分散在各个目录中的多个文件。我想将所有这些加载到单个RDD中,然后在其上执行map / reduce。我看到SparkContext能够使用通配符从单个目录加载多个文件。我不确定如何从多个文件夹加载文件。 以下代码段失败: 这在第三个循环中失败,并显示以下错误消息: 鉴于我仅提供了两个参数,所以这很奇怪。任何指针表示赞赏。 问题答案: 措辞如何呢? 在Scala中,有两种变体

  • 我也遇到了一个问题,而发送邮件正文的日语。 我使用了mimeutility.encodeText(subject,“UTF-8”,“B”),但这只适用于subject而不适用于邮件正文中的日语文本。 我正在使用阿帕奇骆驼邮件。 请帮忙

  • 问题内容: 我正在尝试更改文本文件中的某些行,而不影响其他行。这就是文本文件“ text.txt”中的内容 我的目标是更改第4行和第5行,但其余部分保持不变。 即使代码有效,我想知道是否有更好,更有效的方法?是否可以仅通过行号读取文件? 问题答案: 您没有什么可以改善的。但是您必须将所有行都写入 一个新文件 ,无论已更改还是未更改。较小的改进将是: 使用该语句; 避免将行存储在列表中; 子句中不带

  • 我正在编写一种方法来搜索列表形式的文字文件,搜索用户输入的文字,但如果找到一个字母,程序将返回一个肯定的结果。例如,如果我搜索“f”,当没有单词时,它将返回字典中有一个单词“f”

  • 6.6.3 FlatFileItemWriter 将数据写入到纯文本文件也必须解决和读取文件时一样的问题。 在事务中,一个 step 必须通过分隔符或采用固定长度的格式将数据写出去. LineAggregator 与 LineTokenizer 接口的处理方式类似, 写入文件时也需要有某种方式将一条记录的多个字段组织拼接成单个 String,然后再将string写入文件. Spring Batch

  • 6.6.2 FlatFileItemReader 译注: 本文中 将 Flat File 翻译为“平面文件”, 这是一种没有特殊格式的非二进制的文件,里面的内容没有相对关系结构的记录。 平面文件(flat file)是最多包含二维(表格)数据的任意类型的文件。在 Spring Batch 框架中 FlatFileItemReader 类负责读取平面文件, 该类提供了用于读取和解析平面文件的基本功能