java使用文件流实现查看下载次数
时间:2018-07-18
这篇文章主要为大家详细介绍了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(); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Django+RestFramework API接口及接口文档并返回json数据操作
- Yii2框架实现利用mpdf创建pdf文件功能示例
- PHP超低内存遍历目录文件和读取超大文件的方法
- PHP bin2hex()函数基础实例讲解
- Kears 使用:通过回调函数保存最佳准确率下的模型操作
- django form和field具体方法和属性说明
- 总结PHP中初始化空数组的最佳方法
- tensorflow使用CNN分析mnist手写体数字数据集
- PHP7 mongoDB扩展使用的方法分享
- 主流开源分布式图数据库 Benchmark
- PHP封装的简单连接MongoDB类示例
- 基于Tensorflow的MNIST手写数字识别分类
- Yii框架ACF(accessController)简单权限控制操作示例
- tensorflow 动态获取 BatchSzie 的大小实例
- TP5.0框架实现无限极回复功能的方法分析