java使用文件流实现查看下载次数

 更新时间:2018年07月18日 11:15:45   作者:xusheng_Mr  
这篇文章主要为大家详细介绍了java使用文件流实现查看下载次数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了java使用文件流实现查看下载次数的具体代码,供大家参考,具体内容如下

需求:点击一个按钮的次数或者是展示文件,游戏被下载的次数

实现:开辟一个流文件,用来保存被下载的次数,然后读文件中value,点击一次value加1,再将此value保存到流文件中。
三种方法:

package cn.tr.test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;

public class TestDemo {

  private static int in ;
  private static File file;

  public static void main(String[] args) {

    fun2();
  }

  public static void fun(){
    /** 初始化文件中的值为0*/
    try {
      OutputStream out = new FileOutputStream(file);
      String str = "00";
      out.write(str.getBytes());
      out.close();
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

  }
  public static void fun2() {

    file= new File("d:/test/d.txt");
    if (!file.exists()) {
      try {
        file.createNewFile();
      } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    try {
      /** 读取文件中的内容 */
      if (file.exists()&&file.length()==0) {
        fun();
      }
      InputStream is = new FileInputStream(file);
      byte b[] = new byte[(int) file.length()];
      for (int i = 0; i < b.length; i++) {
        // 值字节在0-255 范围之内是作为int 来返回的
        b[i] = (byte) is.read();
      }
      in =Integer.parseInt(new String(b));
      in++;
      System.out.println("读出来的"+in);

      /**再写入到文件中 */
      OutputStream out = new FileOutputStream(file);
      String str = String.valueOf(in);
      byte[] bytes = str.getBytes();
      for (int i = 0; i < bytes.length; i++) {
        out.write(bytes[i]);  // 一个字节一个字节的写入
      }
      is.close();
      out.close();
      System.out.println("写入的"+in);

    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

  public static void fun3(){

    file= new File("d:/test/d.txt");
    if (!file.exists()) {
      try {
        file.createNewFile();
      } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    /** 先读出来*/
    try {
      if (file.exists()&&file.length()==0) {
        fun();
      }
      Reader reader = new FileReader(file);
      char[] c = new char[(int)file.length()];
      int temp = 0;
      int len =0;
      while((temp=reader.read()) != -1){
        c[len]=(char)temp;
        len++;
      }
      reader.close();
      System.out.println("初始值"+new String(c,0,len));
      in =Integer.parseInt(new String(c,0,len));
      in++;
      System.out.println("下载一次:"+in);
    /** 再写进去*/
      Writer writer = new FileWriter(file);
      writer.write(in+"");
      writer.close();
      System.out.println("再写进去:"+in);
    } catch (FileNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

  public static void fun4(){
    Reader reader; 
    Writer writer;
    file= new File("d:/test/d.txt");
    if (!file.exists()) {
      try {
        file.createNewFile();
      } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    try {
      if (file.exists()&&file.length()==0) {
        fun();
      }
      /** 读出来*/
      reader = new FileReader(file);
      BufferedReader br = new BufferedReader(reader);
      char [] c = new char[(int)file.length()];
      int len = 0;
      int temp = 0;
      while((temp=br.read())!= -1){
        c[len]=(char)temp;
        len++;
      }

      in =Integer.parseInt(new String(c, 0, len));
      in++;
      System.out.println("读出来:"+ in);
      /** 写进去*/
      writer =new FileWriter(file);
      BufferedWriter bw = new BufferedWriter(writer);
      bw.write(in+"");
      System.out.println("写进去:"+in);
      br.close();
      bw.close();
    } catch (FileNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

  }  

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Spring MVC如何使用@RequestParam注解获取参数

    Spring MVC如何使用@RequestParam注解获取参数

    这篇文章主要介绍了Spring MVC实现使用@RequestParam注解获取参数方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • SpringMvc中的Bean加载机制详解

    SpringMvc中的Bean加载机制详解

    这篇文章主要介绍了SpringMvc中的Bean加载机制详解,在Spring MVC中,Bean的作用主要是处理应用程序的业务逻辑和数据,例如,一个用户管理应用程序的Bean可能包括UserService、UserDao和UserController等,需要的朋友可以参考下
    2023-12-12
  • java 三元操作符用法说明

    java 三元操作符用法说明

    这篇文章主要介绍了java 三元操作符用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Springboot整合Shiro的代码实例

    Springboot整合Shiro的代码实例

    这篇文章主要介绍了Springboot整合Shiro的代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • java 键盘输入的多种实现方法

    java 键盘输入的多种实现方法

    java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象。常用的类有BufferedReader,Scanner。
    2013-03-03
  • Spring AOP的概念与实现过程详解

    Spring AOP的概念与实现过程详解

    AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,可通过运行期动态代理实现程序功能的统一维护的一种技术。AOP是 Spring框架中的一个重要内容
    2023-02-02
  • 深入学习java位运算的基础知识

    深入学习java位运算的基础知识

    位运算是直接对整数在内存中的二进制位进行操作吗,位运算即可以节约内存,同时使程序速度更快效率更高。文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,下面我们来一起学习下吧
    2019-06-06
  • 解决IDEA报错java无效的目标发行版:22

    解决IDEA报错java无效的目标发行版:22

    在使用IDEA编译项目时,可能会遇到JDK版本不一致的错误,这篇文章主要介绍了解决IDEA报错java无效的目标发行版:22的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-10-10
  • Kotlin基础教程之面向对象

    Kotlin基础教程之面向对象

    这篇文章主要介绍了Kotlin基础教程之面向对象的相关资料,需要的朋友可以参考下
    2017-05-05
  • springSecurity用户认证和授权的实现

    springSecurity用户认证和授权的实现

    Spring Security 是一个开源的安全框架,提供了基于权限的访问控制、身份认证的功能,本文主要介绍了springSecurity用户认证和授权,具有一定参考价值,感兴趣的可以了解一下
    2024-04-04

最新评论