1 import java.io.*; 2 3 public class TryOut { 4 5 /** 6 * IO流模拟软件试用次数的功能 7 * 这里注意try里BufferedOutputStream不要和InputStream放在同一个try里,因为写入的时候他默认会清空原文件的值 8 * 9 * @param args10 */11 public static void main(String[] args) {12 try (13 BufferedInputStream bis = new BufferedInputStream(new FileInputStream("config.txt"))14 ) {15 int temp = bis.read();16 int count = temp ^ 66;17 if (count > 0 && count <= 3) {18 count--;19 System.out.println("您的试用次数还剩" + count + "次");20 BufferedOutputStream bos = null;21 try {22 bos = new BufferedOutputStream(new FileOutputStream("config.txt"));23 bos.write(count ^ 66);24 bos.flush();25 } catch (FileNotFoundException e) {26 e.printStackTrace();27 }28 } else {29 System.out.println("您的试用次数已用尽,请购买正版使用!");30 }31 } catch (FileNotFoundException e) {32 e.printStackTrace();33 } catch (IOException e) {34 e.printStackTrace();35 }36 }37 38 /**39 * 初始试用次数方法40 */41 public static void code() {42 try (43 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("config.txt"))44 ) {45 bos.write(3 ^ 66);46 bos.flush();47 } catch (FileNotFoundException e) {48 e.printStackTrace();49 } catch (IOException e) {50 e.printStackTrace();51 }52 }53 }
大致思路就是把试用次数加密写入到一个txt里,然后通过读取这个txt来让count自减,直到count为0的时候也就代表试用次数用尽了.