字符流:

  1、加入字符缓存流,增强读取功能(readLine)

  2、更高效的读取数据

  BufferedReader

  从字符输入流读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。

  FileReader:内部使用InputStreamReader,解码过程,byte->char,默认缓存大小为8k

  BufferReader:默认缓存大小为8k,但可以手动指定缓存大小,把数据读取到缓存中,减少每次转换过程,效率更高

  //字符输入缓冲流

  private static void charReader() {

  //目标文件

  File file = new File("F:\\javatest\\lemon1.txt");

  try {

  //字符流

  Reader reader = new FileReader(file);

  //为字符流提供缓冲,已达到高效读取的目的

  BufferedReader bufr = new BufferedReader(reader);

  char[] chars = new char[1024];

  int len = -1;

  while((len = bufr.read(chars)) != -1) {

  System.out.println(new String(chars,0,len));

  }

  bufr.close();

  } catch (FileNotFoundException e) {

  e.printStackTrace();

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  BufferedWriter

  将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入

  FileWriter:内部使用InputStreamWriter,解码过程,byte->char,默认缓存大小为8k

  BufferWriter:默认缓存大小为8k,但可以手动指定缓存大小,把数据读取到缓存中,减少每次转换过程,效率更高

  //字符输出缓存流

  private static void charWriter() {

  //目标文件

  File file = new File("F:\\javatest\\lemon1.txt");

  try {

  //字符流

  Writer writer = new FileWriter(file,true);//追加

  //为字符流提供缓冲,已达到高效读取的目的

  BufferedWriter bufr = new BufferedWriter(writer);

  bufr.write("这里是字符缓冲流\r\n");

  bufr.flush();

  bufr.close();

  } catch (FileNotFoundException e) {

  e.printStackTrace();

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  总结:

  package com.lemon;

  import java.io.BufferedInputStream;

  import java.io.BufferedOutputStream;

  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;

  /**

  * 缓存的目的:

  * 解决在写入文件操作时,频繁的操作文件所带来的性能降低问题

  * BufferedOutputStream内部默认的缓存大小是8kb,每次写入时存储到缓存中的byte数组中,当数组存满时,会把数组中的数据写入文件

  * 并且缓存下标归零

  *

  * 字符流:郑州不孕不育医院:www.zzfkyy120.com/

  * 1、加入字符缓存流,增强读取功能(readLine)

  * 2、更高效的读取数据

  * FileReader:内部使用InputStreamReader,解码过程,byte->char,默认缓存大小为8k

  * BufferReader:默认缓存大小为8k,但可以手动指定缓存大小,把数据读取到缓存中,减少每次转换过程,效率更高

  * BufferedWriter:同上

  * @author lemonSun

  *

  * 2019年5月4日下午8:12:53

  */

  public class BufferStreamDemo {

  public static void main(String[] args) {

  // byteWriter();

  // byteReader();

  // byteReader1();

  // charReader();

  charWriter();

  }

  //字符输出缓存流

  private static void charWriter() {

  //目标文件

  File file = new File("F:\\javatest\\lemon1.txt");

  try {

  //字符流

  Writer writer = new FileWriter(file,true);//追加

  //为字符流提供缓冲,已达到高效读取的目的

  BufferedWriter bufr = new BufferedWriter(writer);

  bufr.write("这里是字符缓冲流\r\n");

  bufr.flush();

  bufr.close();

  } catch (FileNotFoundException e) {

  e.printStackTrace();

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  //字符输入缓存流

  private static void charReader() {

  //目标文件

  File file = new File("F:\\javatest\\lemon1.txt");

  try {

  //字符流

  Reader reader = new FileReader(file);

  //为字符流提供缓冲,已达到高效读取的目的

  BufferedReader bufr = new BufferedReader(reader);

  char[] chars = new char[1024];

  int len = -1;

  while((len = bufr.read(chars)) != -1) {

  System.out.println(new String(chars,0,len));

  }

  bufr.close();

  } catch (FileNotFoundException e) {

  e.printStackTrace();

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  //缓存流输入 不用关闭 try自动关闭 必须实现Closeable接口

  private static void byteReader1(){

  //目标文件

  File file = new File("F:\\javatest\\lemon1.txt");

  //buf作用域在try大括号里面多条语句try(;),;隔开

  try(BufferedInputStream buf = new BufferedInputStream(new FileInputStream(file))) {

  byte[] bytes = new byte[1024];

  int len = -1;

  while((len = buf.read(bytes)) != -1) {

  System.out.println(new String(bytes,0,len));

  }

  } catch (FileNotFoundException e) {

  e.printStackTrace();

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  //缓存流输入

  private static void byteReader(){

  //目标文件

  File file = new File("F:\\javatest\\lemon1.txt");

  try {

  //字节输出流

  InputStream in = new FileInputStream(file);

  //字节缓冲流

  BufferedInputStream buf = new BufferedInputStream(in);

  byte[] bytes = new byte[1024];

  int len = -1;

  while((len = buf.read(bytes)) != -1) {

  System.out.println(new String(bytes,0,len));

  }

  buf.close();//自动关闭 in.close

  } catch (FileNotFoundException e) {

  e.printStackTrace();

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  //缓存流输出

  private static void byteWriter(){

  //目标文件

  File file = new File("F:\\javatest\\lemon1.txt");

  try {

  //字节输出流

  OutputStream out = new FileOutputStream(file,true);

  //缓冲流

  BufferedOutputStream buf = new BufferedOutputStream(out);

  //内容

  String info = "这里是缓冲流\r\n";

  //写入

  buf.write(info.getBytes());

  buf.close(); //jdk1.7以后自动关闭 out

  // out.close();

  } catch (FileNotFoundException e) {

  e.printStackTrace();

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  ---------------------

Java IO流之字符缓冲流的更多相关文章

  1. Java字节缓冲流和字符缓冲流学习

    1.字节缓冲流 首先要明确一个概念:对文件或其他目标频繁的读写操作,效率低,性能差. 使用缓冲流的好处是,能够高效的读写信息,原理是将数据先缓冲起来,然后一起写入或者读取出来. BufferedInp ...

  2. Java—转换流、字符缓冲流

    转换流 OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节.它的作用的就是,将字符串按照指定的编码表转成字节,在使用字节流将这些字节写 ...

  3. java中关于编码的问题(字符转换流及字符缓冲流 )

    上次我们使用的是字节流,还有一种方式就是字符流,上次说过如何分辨使用哪种流,如果记事本可以读懂则使用字符流,否则使用字节流.使用字符流就需要牵扯到编码的问题,下面给出一种转化流的格式. OutputS ...

  4. Java IO输入输出流 字符数组流 ByteArrayOutputStream/ByteArrayInputStream

    private static void StringWriterAndReader() throws Exception { //字符串流(字符串的内存流) //字符串输入流 StringWriter ...

  5. 字符缓冲流 Day20

    package com.sxt.prac; /* * 缓冲流之字符缓冲流 defaultCharBufferSize = 8192; * 1.读入到程序 * 2.程序写到文件 * 3.采用循环边读边写 ...

  6. Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)

    Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符缓冲流 字符缓冲流根据流的 ...

  7. Java IO流之【缓冲流和文件流复制文件对比】

    与文件流相比,缓冲流复制文件更快 代码: package Homework; import java.io.BufferedOutputStream; import java.io.File; imp ...

  8. Java之缓冲流(字节/字符缓冲流)

    概述 缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流: BufferedInputStream , BufferedOutputStrea ...

  9. java 21 - 6 字符缓冲流的特殊方法以及该方法高效复制文件

    字符缓冲流的特殊方法: A.BufferedWriter: public void newLine():根据系统来决定换行符 private static void write() throws IO ...

随机推荐

  1. Codeforces643A【一种暴力】

    mdzz,今天好烦啊,连特么暴力都不会写了. 题意是:给你n个数(<=n),然后让你求对于每个数输出含有他最多数量的区间数,还有如果存在相等的话,这个区间算小的那个 思路: 暴力起点,然后从小区 ...

  2. 小程序接收from表单数据(实例)

    html部分 <form bindsubmit='sub'> <view class="con"> <view class="con-nr& ...

  3. Mecanim Control

    http://www.ufe3d.com/doku.php/mecanimcontrol Mecanim Control Your ultimate solution for Mecanim base ...

  4. 五分钟了解Mecanim角色动画系统

    http://www.narkii.com/club/thread-305414-1.html Unity 4.0推出的Mecanim动画系统已经有一段时间,不过据了解很多的朋友仍然在使用原来的角色动 ...

  5. Codevs 1140 Jam的计数法

    1140 Jam的计数法 题目描述 Description Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个 ...

  6. Source Insight 入门设置

    在添加工程时,如果想添加文件夹下所有的文件,应该选择 “add tree” Source Insight 类名显示乱码解决 最近重新安装里source insight,但是打开文件后,类名显示乱码? ...

  7. 【IDEA】关于 IDEA 中新建 web 项目的 webapp 文件夹没有小蓝点 ,启动服务,访问不到解决方案

    问题描述: 新建的 maven 的 Module 项目,webapp 文件夹也是在创建完项目后手动添加的,出现了 webapp 文件夹不能被识别的情况. 解决方案: 第一步:  选中项目按 F4 键, ...

  8. Nacos深入浅出(一)

    Nacos代码第一次给我的感觉有点小清新,下面就带大家抽丝剥茧看看源代码,看看阿里大神的东东: 建议大家先把Nacos跑起来,网上有很多教程,最好直接去git里面拉代码,在IDEA里面运行: cons ...

  9. Java 定时任务(转)

    转自 http://www.cnblogs.com/chenssy/p/3788407.html 在我们编程过程中如果需要执行一些简单的定时任务,无须做复杂的控制,我们可以考虑使用JDK中的Timer ...

  10. JavaScript 中的面向对象编程

    使用JSON 来定义一个对象: <script type="text/javascript">var xiaoming = { name : 'xiaoming', a ...