package com.io.properties;
import java.io.*;
import java.util.*;
/*
* 用于记录应用程序运行的次数
* 如果使用次数已到,那么给出注册提示
* 很容易想到的是计数器
* 可以该计数器定义在程序中,随着程序的运行而在内存中存在,
* 并进行自增,可是随着该应用程序的退出,该计数器在内存中消失
* 下次再启动该程序时,又重新开始重0开始
*
* 程序即使结束,该计数器的值也存在
* 下次程序启动时,会先在该计数器的值并加上1后重新存储起来
* 所以要建立一个配置文件,用于记录该软件的使用次数
*
* 键值对数据是map集合
* 数据是以文件的形式存储,使用io
* 那么map+io->properties
* 配置文件可以实现应用程序数据的共享
*
* */
public class PropertiesTest2 {
/**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args){
Properties prop=new Properties();
FileOutputStream fos=null;
FileInputStream fis=null;
File file=new File("count.ini");
if(!file.exists())
try {
file.createNewFile();
fis=new FileInputStream(file);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int count=0;
try {
prop.load(fis);
} catch (IOException e) {
e.printStackTrace();
}
String value=prop.getProperty("time");
if(value!=null){
count=Integer.parseInt(value);
if(count>5)
System.out.println("你好,请缴费");
return ;
}
count=count+1;
prop.setProperty("time", count+"");
try {
fos = new FileOutputStream(file);
prop.store(fos, "fdf");
fos.close();
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Exception in thread "main" java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
at com.io.properties.PropertiesTest2.main(PropertiesTest2.java:50)
求高手指点;上面的程序我是按毕老师的视频敲得,为什么我的报异常?
|