/*
Properties的一个最有用的方面是可以利用store()方法和load()方法方便地对包含在属性(Properties)对象中的信息进行存储或从盘中装入信息。任何时候都可以将一个属性对象写入流或从中将其读出,这使得属性列表特别方便的实现简单的数据库。
下面的程序使用属性列表创建了一个简单的存储姓名和号码的电话本。为了寻找某人的电话号码,可输入名字进行查询。程序使用store()和load()方法来存储和检索列表。当程序执行时,首先从一个叫phonebook.dat的文件中装入列表,如果这个文件存在,列表就被装入,然后就可以增加列表,如果这个文件不存在则创建之。
*/
/*
A simple telephone number database that uses a property list.
*/
import java.io.*;
import java.util.*;
class PhoneBook{
public static void main(String[] args) throws IOException{
Properties ht = new Properties();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String strName,strNumber;
FileInputStream fin = null;
boolean changed = false;
//Try to open phonebook.dat file.
try{
fin = new FileInputStream("phonebook.dat");
}catch(FileNotFoundException e){
//ignore missing file
}
/* If phonebook file already exists,load exsiting
telephone numbers.
*/
try{
if(fin!=null){
ht.load(fin);
fin.close();
}
}catch(IOException e){
System.out.println("Error reading file!");
}
//Let user enter new names and numbers.
do{
System.out.println("Enter new name" +
" ('quit' to stop): ");
strName = br.readLine();
if(strName.equals("quit")) continue;
System.out.println("Enter number:");
strNumber = br.readLine();
ht.put(strName,strNumber);
changed = true;
}while(!strName.equals("quit"));
//If phonebook data has changed,save it.
if(changed){
FileOutputStream fOut = new FileOutputStream("phonebook.dat");
ht.store(fOut,"Telephone Book");
fOut.close();
}
//Look up numbers given a name.
do{
System.out.println("Enter name to find ('quit' to stop): ");
strName = br.readLine();
if(strName.equals("quit")) continue;
strNumber = (String)ht.get(strName);
System.out.println(strNumber);
}while(!strName.equals("quit"));
}
}
分享到:
相关推荐
2. **写入Properties文件**:使用`Properties`类的`store()`方法可以将属性列表写入到输出流,例如`writePropertiesFile`方法中的`properties.store(outputStream, comment)`,其中`comment`参数是可选的注释字符串...
`Properties`类还提供了其他方法,如`setProperty()`用于设置属性,`store()`用于保存属性到文件,`clear()`用于清空所有属性,以及`list()`用于将属性列表打印到控制台。 总结,Java中的`Properties`类为处理`....
本示例"解析properties文件demo"将深入讲解如何在Java程序中读取和操作这些文件。 1. **properties文件格式** `properties`文件以键值对的形式存储数据,每行一个键值对,键和值之间用等号(`=`)或冒号(`:`)...
这个压缩包“Java源码读写Properties文件.rar”包含了一份关于如何使用Java来读取和写入Properties文件的源代码示例。下面我们将详细探讨这个主题。 首先,Properties类是Java的标准库类,位于`java.util`包下,它...
下面是一个使用store方法将Properties对象写入输出流的示例代码: ```java public class Main { public static void main(String[] args) throws IOException { Properties prop = new Properties(); prop.set...
1. `load(Reader)` 和 `store(Writer, String)`:这两个方法分别用于从输入流加载属性到Properties对象,以及将Properties对象的键值对写入输出流。通常,我们使用InputStream和OutputStream与文件进行交互,但通过...
总结来说,Java中修改Properties文件的键值涉及到使用`Properties`类的`load()`, `setProperty()`, 和 `store()`方法。在实际应用中,需要考虑异常处理和资源管理,以确保程序的稳定性和效率。通过封装这些操作到...
为了解决这个问题,我们可以自定义一个Properties子类,覆盖其load和store方法,以便在加载和保存时保持原有的格式。 以下是一个名为SafeProperties的示例代码,它重写了Properties类的方法: ```java import java...
最后,我们通过`store()`方法将Properties对象写入指定的输出文件,同时可以提供一个注释字符串,它会在.properties文件的顶部显示。 总结来说,读取.properties文件并将其内容转化为Map对象,以及将Map对象写回...
- 调用`Properties`的`load`方法加载文件内容。 - 使用`getProperty`方法根据键获取对应的值。 - 输出并返回该值。 ##### 2. 读取所有properties信息 ```java public static void readProperties(String filePath)...
`Properties`类还提供了其他方法,如`propertyNames()`用于获取所有键的枚举,`list(PrintStream out)`用于打印所有键值对到控制台,以及`keys()`和`values()`方法分别获取所有键和值的集合。 8. **注意** - `....
- 调用`Properties`对象的`store`方法,传入`FileOutputStream`,将属性写入文件。例如: ```java Properties props = new Properties(); String formattedTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")....
当向Properties文件写入中文时,我们需要创建一个OutputStreamWriter对象,指定UTF-8编码,然后使用Properties类的store()方法。以下是示例代码: ```java Properties props = new Properties(); props.setProperty...
在工具类中,使用`loadProperties`方法加载文件,如`Properties props = PropertiesUtil.loadProperties("config.properties")`。 3. 调用`getProperty`方法获取特定键对应的值,如`String username = ...
下面是一个简单的示例程序,演示了如何使用上述方法读取和写入`Properties`配置文件。 ```java public static void main(String[] args) { readValue("info.properties", "url"); writeProperties("info....
- 使用`Properties.load(InputStream)`方法可以从输入流中加载Properties文件。例如,我们可以使用`FileInputStream`打开文件,然后调用`load()`方法。 - 示例代码: ```java FileInputStream fis = new ...
properties.store(fos, "Saved Configurations"); } catch (Exception e) { e.printStackTrace(); } } ``` 这些函数使用`FileInputStream`和`FileOutputStream`进行读写操作。注意,如果你需要在Android应用中...
3. **加载文件**:调用`Properties`对象的`load()`方法将`properties`文件中的数据加载到`Properties`对象中。 4. **关闭输入流**:最后,确保关闭打开的输入流。 下面是一个示例代码片段,展示了如何实现这些步骤...
要加载.properties文件,我们需要创建一个InputStream对象,然后调用Properties类的`load()`方法。例如: ```java Properties prop = new Properties(); InputStream input = null; try { input = new ...