你虚度的今天,正是昨天逝去的人无限向往的明天。
Properties存取
import java.util.Properties;
import java.util.Set;
public class PropertiesDemo {
public static void main(String[] args) {
setAndGet();
}
//设置和获取元素
public static void setAndGet()
{
Properties prop = new Properties();
prop.setProperty("zhangsan","30");
prop.setProperty("lisi","39");
System.out.println(prop);
String value = prop.getProperty("lisi");
prop.setProperty("lisi",89+"");
System.out.println(value);
Set<String> names = prop.stringPropertyNames();
for (String s:names)
System.out.println(s + ":" + prop.getProperty(s));
}
}
//输出
{zhangsan=30, lisi=39}
39
zhangsan:30
lisi:89
如何将流中的数据存储到集合中。
想要将info.txt中键值数据存到集合中进行操作。
1.用一个流和info.txt文件关联。
2.读取一行数据,将该行数据用"="进行切割。
3.等号左边作为键,右边作为值。存入到Properties集合中即可。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;
public class PropertiesDemo {
public static void main(String[] args) throws IOException
{
method_1();
}
public static void method_1() throws IOException
{
BufferedReader bufr = new BufferedReader(new FileReader("info.txt"));
String line = null;
Properties prop = new Properties();
while ((line = bufr.readLine()) != null)
{
String[] arr = line.split("=");
System.out.println(arr[0]+"......"+arr[1]);
prop.setProperty(arr[0],arr[1]);
}
bufr.close();
System.out.println(prop);
}
}
//输出
zhangsan......30
lisi......57
wangwu......99
{zhangsan=30, lisi=57, wangwu=99}
import java.io.*;
import java.util.Properties;
import java.util.Set;
public class PropertiesDemo {
public static void main(String[] args) throws IOException
{
loadDemo();
}
public static void loadDemo() throws IOException
{
Properties prop = new Properties();
FileInputStream fis = new FileInputStream("info.txt");
//将流中的数据加载进集合
prop.load(fis);
prop.setProperty("wangwu","39");
FileOutputStream fos = new FileOutputStream("info.txt");
prop.store(fos,"haha");
System.out.println(prop);
prop.list(System.out);
fos.close();
fis.close();
}
}
//输出
{zhangsan=30, lisi=57, wangwu=39}
-- listing properties --
zhangsan=30
lisi=57
wangwu=39
![](https://img.haomeiwen.com/i4193251/fa794e0da84a5956.png)
Properties是hashtable的子类。也就是说它具备map集合的特点。而且它里面存储的键值对都是字符串。是集合和IO技术相结合的集合容器。该对象的特点:可以用于键值对形式的配置文件。那么在加载数据时,需要数据有固定格式:键=值。
用于记录应用程序运行次数。如果使用次数已到,那么给出注册提示。很容易想到的是:计数器。可是该计数器定义在程序中,随着程序的运行而在内存中存在,并进行自增。可是随着该应用程序的退出,该计数器也在内存中消失了。下一次再启动该程序,又重新开始从0计数。这样不是我们想要的。程序即使结束,该计数器的值也存在。下次程序启动会先加载该计数器的值并加1后再重新存储起来。所以要建立一个配置文件。用于记录该软件的使用次数。
该配置文件使用键值对的形式。这样便于阅读数据,并操作数据。键值对数据是map集合。数据是以文件形式存储。使用io技术。那么map+io --> properties。配置文件可以实现应用程序数据的共享。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
public class RunCount {
public static void main(String[] args) throws IOException
{
Properties prop = new Properties();
File file = new File("count.ini");
if (!file.exists())
file.createNewFile();
FileInputStream fis = new FileInputStream(file);
prop.load(fis);
int count = 0;
String value = prop.getProperty("time");
if (value!=null)
{
count = Integer.parseInt(value);
if (count>=5)
{
System.out.println("您好,使用次数已到,拿钱!");
return;
}
}
count++;
prop.setProperty("time",count+"");
FileOutputStream fos = new FileOutputStream(file);
prop.store(fos,"");
fos.close();
fis.close();
}
}
//运行六次及大于六次输出
您好,使用次数已到,拿钱!
网友评论