Java 中的属性文件
Java 中的属性是我们需要在 Java 应用程序中使用的配置值。
属性文件是在键值对中包含这些值的文件。这种类型的文件通常具有 .properties
扩展名。
在 Java 属性文件中创建和设置值
在本教程的第一部分,我们编写了一个程序来创建一个属性文件,然后将属性设置为键值对。
Java 为我们提供了 java.util
包的 Properties
类,其中包含几个方法来执行设置或删除属性、列出所有属性等操作。
在我们继续设置属性之前,我们需要从它所在的目录中获取文件属性,如果它不存在,我们创建一个新文件。我们创建一个 FileOutputStream()
对象,并在其构造函数中传递属性文件的路径,该构造函数返回一个 OutputStream
实例。
我们使用 new Properties()
创建一个 Properties
对象并调用 setProperty()
方法来设置文件中的属性值。setProperty()
方法有两个参数,第一个是键,第二个是值。
在示例中,我们设置了三个属性,最后将属性存储在文件中,我们调用 store()
方法将 outputStream
和可选注释作为参数传递。应该创建属性文件并在其中插入属性。
import java.io.*;
import java.util.Properties;
public class JavaExample {
public static void main(String[] args) {
try {
OutputStream outputStream = new FileOutputStream("myConfigs.properties");
Properties properties = new Properties();
properties.setProperty("version", "1.1");
properties.setProperty("projectName", "PropertiesFileExample");
properties.setProperty("date", "2021/12/27");
properties.store(outputStream, "Properties are stored here");
System.out.println(properties);
} catch (IOException e) {
e.printStackTrace();
}
}
}
输出:
{date=2021/12/27, projectName=PropertiesFileExample, version=1.1}
myConfigs.properties
文件:
#Properties are stored here
#Mon Dec 27 16:52:38 IST 2021
date=2021/12/27
projectName=PropertiesFileExample
version=1.1
从 Java 属性文件中获取属性
本节使用 Properties
类及其方法从属性文件中提供特定属性。与前面的示例不同,我们使用 InputStream
而不是 OutputStream
,因为我们在此程序中读取文件。
我们创建一个 Properties
类的对象,调用 load()
方法,并将 InputStream
对象作为其参数传递。加载文件后,我们调用 getProperty()
函数并传递我们要获取的值的键。
我们得到值作为我们在输出中打印的结果。
import java.io.*;
import java.util.Properties;
public class JavaExample {
public static void main(String[] args) {
try {
InputStream inputStream = new FileInputStream("myConfigs.properties");
Properties properties = new Properties();
properties.load(inputStream);
System.out.println(properties.getProperty("date"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
输出:
2021/12/27
从 Java 属性文件中获取所有键和值
list()
是 Properties
类的函数,用于将属性打印到输出流。我们在程序中读取属性文件,创建一个 Properties
对象,并使用 load()
函数加载文件。
要打印属性,我们调用 list()
方法并将 System.out
作为参数传递,该参数是在控制台上打印的输出流。
import java.io.*;
import java.util.Properties;
public class JavaExample {
public static void main(String[] args) {
try {
InputStream inputStream = new FileInputStream("myConfigs.properties");
Properties properties = new Properties();
properties.load(inputStream);
properties.list(System.out);
} catch (IOException e) {
e.printStackTrace();
}
}
}
输出:
-- listing properties --
date=2021/12/27
projectName=PropertiesFileExample
version=1.1
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn