编程练习(软件试用次数)

实现一个如下的软件小功能:

记录软件运行的次数并在每次运行时提示已经运行的次数。如果运行次数大于5次,软件不再运行并给出提示:试用次数已到,请注册!

本代码只简单的介绍了软件的使用次数如何限定,很容易让人破解。

如果想让人难以破解,则自己加入算法,或者分开存储关键数据,

在运行时比对数据等等、、、

package cn.hncu.property;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties; public class TimesTried {
public static void main(String[] args) throws IOException {
if(countDemo()){
//进入软件的相应模块 }else{ System.out.println("试用次数已到,请进行注册!");
} } private static boolean countDemo() throws IOException {
Properties p = new Properties(); int count =0;
//配置文件 File configFile = new File("config.chx"); if(!configFile.exists()){
configFile.createNewFile();
} FileInputStream fin = new FileInputStream(configFile);
//下面的一句为错误的演示,已注释
//FileOutputStream fout = new FileOutputStream(configFile);
//FileOutputStream对象一new出来就会创建一个新文件,自然就覆盖旧的文件数据了。
//因此程序每次运行到这里都会产生新文件 //把配置文件中的信息读入p对象当中
p.load(fin); //从p对象当中读取数据---软件试用次数
String value = p.getProperty("count"); if(value!=null){
count = Integer.parseInt(value);
if(count>=5){
return false;
} } count++;
System.out.println("运行"+count+"次"); //把当前使用的次数存储到配置文件当中
p.setProperty("count", ""+count);
//也可以使用这句
//p.setProperty("count",String.valueOf(count)); FileOutputStream fout = new FileOutputStream(configFile); p.store(fout, null); fin.close();
fout.close(); return true; } }

Java---软件试用次数(Properties类的简单使用)的更多相关文章

  1. Hashtable和HashMap的区别,Properties类的简单使用

    一.Java Properties类 Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置 ...

  2. Java LocalDateTime,DateTimeFomatter----JDK8新时间类的简单使用

    JDK8中增加了一系列时间的类, (据说)是为了干掉过去的Date,Calendar类的, 过去的Date类(据说)有着线程不安全等诸多弊端, 至于我的个人感受就是用起来实在是很麻烦,我一般封装成几个 ...

  3. java通过配置文件(Properties类)连接Oracle数据库代码示例

    import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java. ...

  4. IO流实现模拟软件试用的功能

    import java.io.*; public class TryOut { /** * IO流模拟软件试用次数的功能 * 这里注意try里BufferedOutputStream不要和InputS ...

  5. Properties类随笔

    1. 体系介绍 Properties类继承自HashTable,勉强属于集合框架体系一员,键值对形式存储数据,当然键肯定是唯一的,底层哈希表保证键的唯一,此类一般用于表示配置文件. 2. 基本用法 由 ...

  6. Java中Properties类知识的总结

    一.Properties类与配置文件 注意:是一个Map集合,该集合中的键值对都是字符串.该集合通常用于对键值对形式的配置文件进行操作. 配置文件:将软件中可变的部分数据可以定义到一个文件中,方便以后 ...

  7. Java的Properties类和读取.properties文件

    一..properties文件的作用 Properties属性文件在JAVA应用程序中是经常可以看得见的,也是特别重要的一类文件.它用来配置应用程序的一些信息,不过这些信息一般都是比较少的数据,没有必 ...

  8. Java笔记(二十七)……IO流中 File文件对象与Properties类

    File类 用来将文件或目录封装成对象 方便对文件或目录信息进行处理 File对象可以作为参数传递给流进行操作 File类常用方法 创建 booleancreateNewFile():创建新文件,如果 ...

  9. Java基础---IO(二)--File类、Properties类、打印流、序列流(合并流)

    第一讲     File类 一.概述 1.File类:文件和目录路径名的抽象表现形式 2.特点: 1)用来将文件或文件夹封装成对象 2)方便于对文件与文件夹的属性信息进行操作 3)File类的实例是不 ...

随机推荐

  1. [转] prerender-SPA程序的SEO优化策略

    随着web2.0的兴起,ajax的时代已经成为了事实,更如今 Knockout,backbone, angular,ember前端MDV(model driver view)框架强势而来,Single ...

  2. Linux下有线无线网络配置------命令模式

    1. 列出启用网络设备的所有信息: ifconfig 2. 将网络设备设置为启用或者不启用 不启用设备eth0 ifconfig eth0 down 启用设备eth0: Will bring eth0 ...

  3. 新一代 PHP 加速插件 Zend Opcache <转>

    注: 由于原链接已不存在, 所以我把图片重新整理了一下, 以便看起来更加直观 笔者注: 1>  PHP 性能提升之 PHP NG  =>  php next generation wiki ...

  4. JPA事务回滚配置

    <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.or ...

  5. Android传感器的使用(GravieySensor)

    这里以重力传感器为例说明 第一步:创建一个SensorManager对象,用来管理或者获取传感器 SensorManager sm = (SensorManager) this.getSystemSe ...

  6. ASP.NET面试

    1.net中读写数据库需要用到那些类?他们的作用都是什么?答:DataSet:数据存储器.DataCommand:执行语句命令.DataAdapter:数据的集合,用语填充.2.介绍一下什么是Code ...

  7. 鼠标滑动判断与y轴的距离

     $(window).scroll(function(){                        var y = window.scrollY;//754到达                  ...

  8. 7-http1.1和2.0的区别?

    1.多路复用:减少tcp请求 合并成一个2.首部压缩:会把多个首部压缩3.服务器推送:不用request也可以response

  9. 开发solr功能问题点

    Criteria criteria = new Criteria(); public Criteria and(Criteria criteria) { this.criteriaChain.add( ...

  10. 关于调用office com组件导出Excel

    服务器环境: 环境为win2008 r2,系统为64位,程序是C#的winform.因为需要处理数据,然后生成Excel,耗时太长,就使用了多线程.winform程序是由计划任务启动,每天晚上去跑. ...