测试用的文件为txt格式文件,大小为2.12MB

package IO;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;/*** 我创建了两个方法,* fileReader()用来测试字节流的读取速度* fileInputStream()用来测试字符流读取速度* 测试文件为 0.98G的test.txt文本文件* @author liqifeng**/
public class speedTest {//文件类static File file;/*** 此方法用来测试带缓存的字符流的读取速度* @param file* @throws Exception*/public static void bufferReader(File file) throws Exception{FileReader fileReader=new FileReader(file);BufferedReader bufferedReader=new BufferedReader(fileReader);while(true){bufferedReader.readLine();if(bufferedReader.readLine()==null){break;}}}/*** 此方法用来测试字符流的读取速度* @param file* @throws Exception*/public static void  fileReader(File file) throws Exception{FileReader f=new FileReader(file);while (true) {f.read();if(f.read()==-1){break;}}f.close();}/*** 此方法用来测试字节流的读取速度* @param file* @throws Exception*/public static void fileInputStream( File file) throws Exception{FileInputStream f=new FileInputStream(file);while(true){f.read();if(f.read()==-1){break;}}f.close();}public static void main(String[] args) throws Exception {//初始化文件file=new File("E:/java/test.txt");System.out.println("字符流运行速度测试如下(五次)");for(int i=0;i<5;i++){//开始的时间戳long before=System.currentTimeMillis(); //运行程序fileReader(file);//结束的时间戳long after=System.currentTimeMillis(); //总用时long result=after-before;System.out.println(result);}System.out.println();System.out.println("字节流运行速度测试如下(五次)");for(int i=0;i<5;i++){long before=System.currentTimeMillis(); fileInputStream(file);long after=System.currentTimeMillis(); long result=after-before;System.out.println(result);}System.out.println();System.out.println("带缓存的字符流运行速度测试如下(五次)");for(int i=0;i<5;i++){long before=System.currentTimeMillis(); bufferReader(file);long after=System.currentTimeMillis(); long result=after-before;System.out.println(result);}}
}

运行结果如下图

可以明显看到,此次测试中,字符流读取速度要快于字节流读取速度,带缓存的字符流要快于不带缓存的字符流

Java测试字节流和字符流,以及带缓存的字符流读取速度对比相关推荐

  1. 第三次学JAVA再学不好就吃翔(part108)--带缓冲的字符流

    学习笔记,仅供参考,有错必纠 文章目录 IO流 带缓冲的字符流 BufferedReader和BufferedWriter readLine和newLine方法 IO流 带缓冲的字符流 Buffere ...

  2. 【Java】花费数十小时,带你体验Java文档搜索引擎的实现过程

    Java文档搜索引擎 项目运行效果 一.简述搜索引擎概念 二.搜索引擎实现思路 2.1倒排索引介绍 2.2项目目标 2.3获取java文档 2.4模块划分 2.5创建项目 2.6认识分词 2.7分词的 ...

  3. STM8 ADC转换模式-------带缓存的连续模式

    STM8单片机ADC支持5种转换模式:单次模式,连续模式,带缓存的连续模式,单次扫描模式,连续扫描模式. 连续和带缓存的连在连 换模式中,将ADC设为连续模式,该模式是通过置位 ADC_CR1寄存器的 ...

  4. Java IO 字节流、字符流详解

    1. 字节流与字符流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接.类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流 ...

  5. Java IO 字节流与字符流 (三)

    概述 IO流用来处理设备之间的数据传输 Java对数据的操作时通过流的方式 Java用于操作流的对象都在IO包中 流按操作的数据分为:字节流和字符流 流按流向不同分为:输入流和输出流 IO流常用基类 ...

  6. 【转】文本文件和二进制文件区别及java中字节流和字符流归纳

    首先在物理上文本文件和二进制文件并没有区别,都是以二进制01的形式存放于存储介质中,他们的区别只是逻辑上的区别,这两种方式只是在编码层次上有差别.文本文件是基于字符编码的文件,常见的编码有ASCII编 ...

  7. Java中字节流和字符流的比较(转)

    字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操 ...

  8. java中字节流的分类都有哪些_Java------字节流和字符流(I)

    字节流:读写字节文件,通常使用字节流,如:二进制文件,.jpg,.mp3,.avi,.exe,.com,.dll windows平台的执行文件:.exe,.com,.dll 字符流:读写字符文件,通常 ...

  9. 【Java网络编程与IO流】Java中IO流分为几种?字符流、字节流、缓冲流、输入流、输出流、节点流、处理流

    Java网络编程与IO流目录: [Java网络编程与IO流]Java中IO流分为几种?字符流.字节流.缓冲流.输入流.输出流.节点流.处理流 [Java网络编程与IO流]计算机网络常见面试题高频核心考 ...

最新文章

  1. DevOps:软件架构师行动指南(文摘)
  2. 自信息跟信息熵的区别
  3. 电脑计算机名无法更改,win10系统计算机名字无法更改的还原技巧
  4. 逆向-攻防世界-reverse-box
  5. OCR数据处理(上篇)+OCR数据处理(下篇)
  6. 配置frp报错start error: type [http] not support when vhost_http_port is not set
  7. 河南科技大学计算机系宿舍,河南科技大学宿舍条件怎么样—河南科技大学宿舍图片...
  8. Linux使用ntpdate和ntpd进行时间同步
  9. 思科、华为、华三交换机的线缆检测功能
  10. C语言中的斐波那契数列程序
  11. wifi6无线网卡驱动linux,ROG R6E Omega换wifi 6无线网卡教程
  12. 漏洞挖掘分析技术总结
  13. 三种方法求解Fibonacci(斐波那契)数列
  14. FlyBanner轮播图 和 XBanner轮播图
  15. selenium webdriver 使用webDriver点击ENTER建的两种方法
  16. shell lsof
  17. validate格式校验之身份证号码校验
  18. DJANGO VUE3 跨域CSRF问题刨坑
  19. 一种基于肌电信号运动起点、波峰、终点实时自动检测的方法
  20. Spring Boot笔记—多线程系列(三)—配置参数详解

热门文章

  1. 宜信 | 供应链金融+区块链双链合璧
  2. matlab 魔塔小游戏
  3. php中进制转换,php的进制转换
  4. 木兰编程语言python_国产木兰编程果然是大骗局,碰瓷Python毫无悬念
  5. 深度学习目标检测最全综述
  6. 2019-2-13-Latex-论文elsevier,手把手如何用Latex写论文
  7. javascript语言中和||有什么区别?
  8. ?php exit('dedecms');?,包罗万象的织梦CMS的图片处理类库
  9. python3爬虫之二:爬取网页图片
  10. 美团技术团队-日志导致线程Block的这些坑,你不得不防