---恢复内容开始---
对于不确定的数据,需要持久化到硬盘上,就得用到配置文件。
例子:软件试用次数
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; public class PropertiesTestDemo { public static void main(String[] args) throws IOException { /* * 需求:定义一个功能,记录程序运行的次数,满足5次后,给出提示,试用次数已到,请注册! * 思路: * 1.需要计数器 * 2.计数器的值生命周期要比应用程序长,需要对计数器的值进行持久化。 * count = 1,里面存储的是键值方式,map集合,要和设备上的数据关联,需要IO技术 * 集合+IO = Properties * */ boolean b = checkCount(); if(b){ run(); } } public static boolean checkCount() throws IOException { boolean isRun = true; //1.将配置文件封装成File对象,因为要判断文件是否存在。 File configFile = new File("tempfile\\count.properties"); if(!configFile.exists()){//如果不存在就创建一个 configFile.createNewFile(); } int count=0;//定义计数器 Properties prop = new Properties();//用于存储配置文件中的数据 //2.定义流对象 FileInputStream fis = new FileInputStream(configFile); //3.将流中的数据加载到集合中 prop.load(fis); //4.获取键对应的次数 String value = prop.getProperty("count"); if(value!=null){ count = Integer.parseInt(value); if(count>=5){ System.out.println("试用次数已到,请给钱!!"); isRun=false; } } count++;//对取出的次数进行自增 //将键count,和自增后的值重新存储到集合中。 prop.setProperty("count", Integer.toString(count)); //将集合中的数据存储到配置文件中 FileOutputStream fos = new FileOutputStream(configFile); prop.store(fos, "flush data"); fos.close(); fis.close(); return isRun; } public static void run(){ System.out.println("软件运行"); } }
---恢复内容结束---
时间: 2024-11-10 04:30:52