首页 > 开发 > Java > 正文

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

2024-07-14 08:41:39
字体:
来源:转载
供稿:网友

本文实例为大家分享了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();    }  }  }

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


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表