当前位置: 首页 > news >正文

静态网站结构如何更新临沂网站建设有哪些

静态网站结构如何更新,临沂网站建设有哪些,学科专业建设规划,上海企业网站建设哪家好①BufferedInputStream、BufferedOutputStream#xff08;适合读写非普通文本文件#xff09; ②BufferedReader、BufferedWriter#xff08;适合读写普通文本文件。#xff09; 缓冲流的读写速度快#xff0c;原理是#xff1a;在内存中准备了一个缓存。读的时候从缓存中… ①BufferedInputStream、BufferedOutputStream适合读写非普通文本文件 ②BufferedReader、BufferedWriter适合读写普通文本文件。 缓冲流的读写速度快原理是在内存中准备了一个缓存。读的时候从缓存中读。写的时候将缓存中的数据一次写出。都是在减少和磁盘的交互次数。 一、如何理解缓冲区 家里盖房子有一堆砖头要搬在工地100米外单字节的读取就好比你一个人每次搬一块砖头从堆砖头的地方搬到工地这样肯定效率低下。 然而聪明的人类会用小推车每次先搬砖头搬到小车上再利用小推车运到工地上去这样你再从小推车上取砖头是不是方便多了呀这样效率就会大大提高缓冲流就好比我们的小推车给数据暂时提供一个可存放的空间。 二·、BufferedInputStream  FileInputStream/FileOutputStream是节点流 BufferedInputStream是缓冲流(包装流/处理流)。这个流的效率高。自带缓冲区。并且自己维护这个缓冲区。读大文件的时候建议采用这个缓冲流来读取。 关闭流只需要关闭最外层的处理流即可通过源码就可以看到当关闭处理流时底层节点流也会关闭。 1.概述 BufferedInputStream为另一个输入流添加了缓冲功能它内部维护了一个缓冲区当从流中读取数据时会尽可能多地将数据读入缓冲区这样后续的读取操作就可以直接从缓冲区中获取数据而不必每次都从底层输入流中读取从而减少了实际的 I/O 操作次数提高了读取效率。 2.常用构造方法 BufferedInputStream(InputStream in)创建一个BufferedInputStream并使用默认大小的缓冲区。参数in是要被缓冲的底层输入流。例如 import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException;/*** 1. java.io.BufferedInputStream的用法和FileInputStream用法相同。** 2. 他们的不同点是* FileInputStream是节点流。* BufferedInputStream是缓冲流(包装流/处理流)。这个流的效率高。自带缓冲区。并且自己维护这个缓冲区。读大文件的时候建议采用这个缓冲流来读取。** 3. BufferedInputStream对 FileInputStream 进行了功能增强。增加了一个缓冲区的功能。** 4. 怎么创建一个BufferedInputStream对象呢构造方法* BufferedInputStream(InputStream in)**/ public class BufferedInputStreamTest1 {public static void main(String[] args) {BufferedInputStream bis null;try {// 创建节点流//FileInputStream in new FileInputStream(file.txt);// 创建包装流//bis new BufferedInputStream(in);// 组合起来写bis new BufferedInputStream(new FileInputStream(file.txt));// 读和FileInputStream用法完全相同byte[] bytes new byte[1024];int readCount 0;while((readCount bis.read(bytes)) ! -1){System.out.print(new String(bytes, 0, readCount));}} catch (Exception e) {e.printStackTrace();} finally {// 包装流以及节点流你只需要关闭最外层的那个包装流即可。节点流不需要手动关闭。if (bis ! null) {try {bis.close();} catch (IOException e) {e.printStackTrace();}}}} } 在根路径下创建file.txt 运行结果 ⑵.BufferedInputStream(InputStream in, int size) 创建一个BufferedInputStream并指定缓冲区的大小为size字节。例如 FileInputStream fis new FileInputStream(test.txt); BufferedInputStream bis new BufferedInputStream(fis, 8192); read方法主要功能是通过预加载数据到内存缓冲区减少底层 I/O 操作的次数 三、BufferedOutputStream 常用构造方法 BufferedOutputStream(OutputStream out)创建一个BufferedOutputStream并使用默认大小的缓冲区。参数out是要被缓冲的底层输出流。例如 FileOutputStream fos new FileOutputStream(test.txt); BufferedOutputStream bos new BufferedOutputStream(fos); BufferedOutputStream(OutputStream out, int size)创建一个BufferedOutputStream并指定缓冲区的大小为size字节。例如 FileOutputStream fos new FileOutputStream(test.txt); BufferedOutputStream bos new BufferedOutputStream(fos, 8192); import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOException;/*** 1. java.io.BufferedOutputStream也是一个缓冲流。属于输出流。* 2. 怎么创建BufferedOutputStream对象* BufferedOutputStream(OutputStream out)* 3. FileOutputStream是节点流。 BufferedOutputStream是包装流。*/ public class BufferedOutputStreamTest01 {public static void main(String[] args) {BufferedOutputStream bos null;try {bos new BufferedOutputStream(new FileOutputStream(file.txt));bos.write(你好世界.getBytes());// 缓冲流需要手动刷新。bos.flush();} catch (Exception e) {e.printStackTrace();} finally {if (bos ! null) {try {// 只需要关闭最外层的包装流即可。bos.close();} catch (IOException e) {e.printStackTrace();}}}} } 运行结果 四、使用BufferedInputStream 和BufferedOutputStream完成文件的复制 /*** 使用BufferedInputStream BufferedOutputStream完成文件的复制。*/ public class BufferedInputOutputStreamCopy {public static void main(String[] args) {long begin System.currentTimeMillis();try(BufferedInputStream bis new BufferedInputStream(new FileInputStream(C:\\Users\\86178\\Desktop\\2024\\test3.txt));BufferedOutputStream bos new BufferedOutputStream(new FileOutputStream(C:\\Users\\86178\\Desktop\\2024\\testwriter.txt))){// 一边读一边写byte[] bytes new byte[1024];int readCount 0;while((readCount bis.read(bytes)) ! -1){bos.write(bytes, 0, readCount);}// 手动刷新bos.flush();} catch (FileNotFoundException e) {throw new RuntimeException(e);} catch (IOException e) {throw new RuntimeException(e);}long end System.currentTimeMillis();System.out.println(带有缓冲区的拷贝耗时(end - begin)毫秒); // 671} } 五、缓存流的mark与reset 输入流中的 mark 和 reset以 BufferedInputStream 为例 1. 方法说明 void mark(int readlimit)在流的当前位置设置一个标记。readlimit 参数指定了在标记位置失效之前可以读取的最大字节数。也就是说在读取了 readlimit 个字节之后标记可能会失效此时调用 reset 方法可能会抛出 IOException。void reset()将流的位置重置到之前通过 mark 方法设置的标记位置。如果标记已经失效例如已经读取超过 readlimit 个字节则会抛出 IOException。 import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException;public class BufferedInputStreamMarkResetExample {public static void main(String[] args) {try (BufferedInputStream bis new BufferedInputStream(new FileInputStream(test.txt))) {// 读取前 3 个字节int data;for (int i 0; i 3; i) {data bis.read();if (data ! -1) {System.out.print((char) data);}}// 设置标记允许在读取 10 个字节内重置到该位置bis.mark(10);// 继续读取 3 个字节for (int i 0; i 3; i) {data bis.read();if (data ! -1) {System.out.print((char) data);}}// 重置到标记位置bis.reset();// 再次从标记位置读取 3 个字节for (int i 0; i 3; i) {data bis.read();if (data ! -1) {System.out.print((char) data);}}} catch (IOException e) {e.printStackTrace();}} } 运行结果 输出流中的 mark 和 reset 在 BufferedOutputStream 中并没有直接提供 mark 和 reset 方法。这是因为输出流的主要目的是将数据写入目标而不是像输入流那样可以灵活地回退读取。一旦数据被写入输出流通常是不可逆的操作。 不过如果你需要实现类似的功能可以考虑使用一些辅助的数据结构如 ByteArrayOutputStream来缓存数据然后根据需要重新写入。
http://www.ho-use.cn/article/10817200.html

相关文章:

  • 全国网站备案拍照展示型网站建设方案书
  • 职业技能培训网站佛山网站建设工作
  • 中石化第五建设有限公司官方网站房地产销售基础知识大全
  • 网站建设如何选择域名ui培训班哪里比较好
  • 网站建设改版升级校园环境设计规划及实施方案
  • 我要建立一个网站辽宁省住建厅建设网站
  • 北京搬家公司口碑排行电话邢台网站建设优化
  • 行业网站设计师招聘东莞市住建局官网查询
  • 济南网站排名优化报价遵义建设厅官方网站
  • 深圳企业网站建设多少钱沙漠风网站建设
  • 湘潭网站定制酒店网站制作公司
  • 做跟单员的话应该关注哪些网站硬件开发专业
  • 做分析图很好用的网站wordpress 文章 接口
  • 国内校园网站建设wordpress黄页
  • windows部署网站php建筑公司企业发展建议
  • 吉林省建设部网站网站如何设置长尾词
  • 东莞网站建设设计公司哪家好discuz是什么
  • 建一个商城网站需要多少钱百度一下百度搜索网站
  • 网网站设计河南省建设厅网站考试成绩查询
  • 海珠营销型网站建设录像网站怎么做
  • 丹东市网站开发公司长春网站建设长春
  • 品牌网站设计制作公司地址网页制作学什么软件
  • 免费搭建网站平台企业概况的模板范文
  • 网站分享功能怎么做国外地图搜房网站建设
  • 获奖网站设计做民宿的有哪些网站
  • wordpress网站文件管理做百度商桥网站
  • 网站开发的课程设置郑州企业网站排名
  • 制作网站副本杭州高端网站开发
  • 校园论坛网站建设论文关键字
  • 武昌网站建设价格多少怎么做百度口碑网站