JAVA之IO技术相关 如何设置软件的使用次数

/*
 * 如何设置软件的使用次数?
 * 开发了一款软件,可以给用户进行试用,但是到了一定次数后,软件不能再被试用
 * 同时提醒用户付费。
 * 思路:
 * 计数呗
 * 问题出现,计数器只能存在于程序运行过程中,实际是保存在内存中的。
 * 那么一旦程序结束,这个计数器的值又恢复为了初始程序中设定的值。
 * 那么如何保存这个值,在下一次启动应用程序的时候,让其仍然存在啊
 * 思路:让这个值持久化,方法将其值保存在硬盘上的文件上。再每次运行
 * 程序之前,先读取这个配置文件;程序关闭之前存储信息到配置文件。
 * 当启动程序的时候,读取到的值如果超过我们设定给用户的次数,则终止
 * 程序启动,就OK啦。
 *
 */
package ioTest.io3;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;

public class PropertiesControlCountToAPP {
	public static void main(String[] args) {
		try {
			loadConfigCount();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static void loadConfigCount() throws IOException
	{
		//配置文件信息
		File confile=new File("F:\\configure.ini");
		Properties pro= new Properties();
		//读信息也可以直接用load方法解决
		BufferedReader in=null;
		String line=null;
		int count=1;
		try {
			in=new BufferedReader(new FileReader(confile));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		while((line=in.readLine())!=null)
		{
			if(!line.contains("="))//如果读取到一行没有=号,说明不是键值对继续执行循环
				continue;
			String[] confPmr=line.split("=");
			//将配置文件读取到properties集合中存储
			pro.setProperty(confPmr[0],confPmr[1]);
		}
		count=Integer.parseInt(pro.getProperty("count"));
		if(count>5)
		{
			System.out.println("软件使用次数已到了,给点辛苦费,可以继续使用哦");
			return;
		}
		System.out.println("您是第"+count+"次使用本软件!您还可以使用"+(5-count)+"次本软件。");
		count++;
		pro.setProperty("count", count+"");
		FileOutputStream writer=new FileOutputStream(confile);
		pro.store(writer, "comments");
		writer.close();
		in.close();
	}
}

JAVA之IO技术相关 如何设置软件的使用次数,布布扣,bubuko.com

时间: 2024-10-05 14:20:46

JAVA之IO技术相关 如何设置软件的使用次数的相关文章

JAVA之IO技术相关Properties类 存储配置文件信息

package ioTest.io3; /* * Properties存储配置文件信息 * 1.文件信息--------------------------- * 2.根据文件信息获取key和value---|流| * 3.将key,value的之对应存储到properties对象中 */ import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOu

JAVA之IO技术相关Properties类的使用

package ioTest.io3; /*Properties是hashtable的子类. * 也就是说它具备map集合的特点,而且它里面存储的键值对都是字符串 * 是集合中和io技术结合的一个容器 * * 该对象的特点是可以用于键值对形式的配置文件 */ import java.util.Properties; public class PropertiesDemo { public static void main(String[] args) { // TODO Auto-generat

JAVA之IO技术异常处理机制

package ioTest.io1; import java.io.FileWriter; /* * IO异常的处理: * 读或写实际上都是调用系统的资源区做操作.只要和系统资源相关的都有可能出现异常. */ import java.io.IOException; public class FileWriterDemo1 { public static void main(String[] args) { FileWriter fWriter=null;//在外层创建对象的引用,在try代码块

JAVA之IO技术文件的复制原理。

在Swing 中显示文本或提示信息的方法是使用标签,它支持文本字符串和图标.在应用程序的用户界面中,一个简短的文本标签可以使用户知道这些控件的目的,所以标签在Swing中是比较常用的控件. 1.标签的使用 标签由JLabel类定义,父类为JComponent类. 标签可以显示一行只读文本,一个图像或带图像的文本,它并不能产生任何类型的事件,只是简单低显示文本和图片,但是可以使用标签的特性指定标签上文本的对齐方式. JLabel类提供了多种构造方法,这样可以创建多种标签,例如显示只有文本的标签.只

JAVA之IO技术File类的使用

package ioTest.io3; /* * File类是对文件和文件夹的抽象. * File类的常见方法: * 1.创建 * createNewFile():在指定的位置创建文件,如果该文件已经存在,则不创建,返回false. * 和输出流对象不一样,输出流对象,只要已建立就创建,如果文件存在,则覆盖. * mkdir():创建此抽象路径名指定的目录 * mkdir():创建此抽象路径名指定的目录,包括所有必需但不存在的父目录. * 2.删除 * delete() * deleteOnEx

JAVA之IO技术-获取指定目录下的文件夹和文件的File对象或是字符串名称。

package ioTest.io3; /* * 获取指定目录下的文件夹和文件的File对象或是字符串名称. * 也可以通过filter获取指定的文件夹或者指定类型的文件 * 这里面需要做一个总结,如何利用jdk的源码去理解不熟悉的方法的应用. */ import java.io.File; import java.io.FileFilter; import java.io.FilenameFilter; public class FileDemo2 { public static void m

JAVA之IO技术-将java程序的异常信息保存在文件中

package ioTest.io2; import java.io.FileNotFoundException; import java.io.PrintStream; import java.util.Properties; /* * 将应用程序的异常信息输出到指定的log文件中 */ public class ExceptionToFile { public static void main(String[] args) throws FileNotFoundException { int

JAVA之IO技术自定义装饰类MybufferedReader

package ioTest.io2; import java.io.FileReader; import java.io.IOException; /* * 自定义的BufferedReader类 * MyBufferedReaderDemo:也是为了提高对流的操作性能. * 所以构造函数中应该将流传入 * * --------拓展:装饰设计模式 * 装饰设计模式是28种设计模式之一.目的是为了增强功能. * 将被增强的类A->增强类B * 将A的对象做为参数,传递给B,让B类对A类进行增强.

JAVA之IO技术-字符流对象Writer的子类对象FileWriter的使用

  package ioTest.io1; import java.io.File; import java.io.FileWriter; /* * IO技术,按照操作数据的方式分类如下: * 字节流和字符流 * 字节流的两个基类: * InputStream,OutputStream * 字节流的两个基类: * Reader,Writer * 思考一个问题:为什么有了字节流还要出现字符流? * * 先学习字符流的特点. * * 既然IO是操作数据的,那么数据最常见的体现形式 文件 * 需求: