package seday07;

import java.io.IOException;
import java.io.PrintWriter;

/**
* @author xingsir
* 缓冲字符流
* java.io.BufferedWriter
* java.io.BufferedReader
* 缓冲字符流内部有缓冲区,读写字符效率高。并可按行读写字符串。
* 但是比较常用的缓冲字符输出流为:PrintWriter,它内部链接
* BufferedWriter作为其缓冲加速,而它自身有提供了自动的 行刷新操
*/
public class PWDemo1 {

public static void main(String[] args) throws IOException {
/*
* PW提供了直接对文件操作的构造方法:
* PrintWriter(String path)
* PrintWriter(File file)
*
*/
PrintWriter pw=new PrintWriter("pw.txt","GBK");//可以再传入一个String类型参数为字符集,这里用GBK
pw.write("啊-五环~~~~");
pw.write("你比四环多一环~~~~");
pw.write("是不是要准备修到七环?");
pw.write("那你还是比五环少两环。");

System.out.println("写出完毕");
pw.close();
}

}

//==========================================================================

package seday07;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

/**
* @author xingsir
* 缓冲字符输入流,可以按行读取字符串
*/
public class BRDemo2 {

public static void main(String[] args) throws IOException {
/*
* 把将当前程序源代码读取出来并输出到控制台
*/
FileInputStream fis=new FileInputStream("./src/seday07/BRDemo2.java");//相对路径
InputStreamReader isr=new InputStreamReader(fis);//将字节转换为字符
BufferedReader br=new BufferedReader(isr);//块读,并且可以按行读取字符串

String line= null;
/*
* String readLine()
* 读取一行字符串,该方法会连续读取若干字符,当读取到换行符时停止,并将换行符之前的内容以一个字符串形式 返回,
* 注意,返回的字符串中不包含最后的换行符。如果返回值为null,则表示流读取到了末尾(若是读取文件 则表示文件读取到了末尾)
*/
while((line=br.readLine())!=null) {//当line不为空时,条件为真
System.out.println(line);//读取
}

br.close();//关闭,
}

}

//==========================================================================

package seday07;

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

/**
* @author xingsir
* 在流连接中使用PrintWriter
*/
public class PWDemo2 {

public static void main(String[] args) throws IOException {
FileOutputStream fos= new FileOutputStream("pw.txt");//文件流,(将字节写入到文件)
OutputStreamWriter osw= new OutputStreamWriter(fos);//转换流(将字符转换成字节)
BufferedWriter bw= new BufferedWriter(osw);//缓冲字符流(加快写入文本数据))
PrintWriter pw= new PrintWriter(bw);//缓冲字符输出流(按行写,并自动行刷新)
pw.println("我曾跨过山河大海");//字符
pw.println("也穿过人山人海");//字符
System.out.println("学出完毕");
pw.close();
}

}

缓冲字符流 java.io.BufferedWriter ,java.io.BufferedReader,缓冲字符输出流:PrintWriter的更多相关文章

  1. 牛客网Java刷题知识点之字符流缓冲区、BufferedWriter、BufferedReader、BufferedReader-readLine方法原理、自定义MyBufferedReader-read方法、自定义MyBufferedReader-readLine方法

    不多说,直接上干货! 把提高效率的动作,封装成一个对象.即把缓冲区封装成一个对象. 就是在一个类里封装一个数组,能对流锁操作数据进行缓存. 什么是字符流缓冲区? 善于使用字符流缓冲区,减轻负担,提高下 ...

  2. Java IO(五)——字符流进阶及BufferedWriter、BufferedReader

    一.字符流和字节流的区别 拿一下上一篇文章的例子: package com.demo.io; import java.io.File; import java.io.FileReader; impor ...

  3. Java IO6:字符流进阶及BufferedWriter、BufferedReader

    字符流和字节流的区别 拿一下上一篇文章的例子: public static void main(String[] args) throws Exception { File file = new Fi ...

  4. Java IO4:字符流进阶及BufferedWriter、BufferedReader

    字符流和字节流的区别 拿一下上一篇文章的例子: 1 public static void main(String[] args) throws Exception 2 { 3 File file = ...

  5. 字节流与字符流的区别&&用字节流好还是用字符流好?

    字节流: (A)FileOutputStream(File name) 创建一个文件输出流,向指定的 File 对象输出数据. (B)FileOutputStream(FileDescriptor) ...

  6. [剑指Offer] 54.字符流中的第一个不重复的字符

    题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...

  7. Day 16:输入输出字符流、缓冲输入字符流

    输入输出字节流输出字符时的常见问题 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStre ...

  8. -1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流

      File类 •文件和目录路径名的抽象表示形式 构造方法 •public File(String pathname) •public File(String parent,Stringchild) ...

  9. Java IO之字符流和文件

    前面的博文介绍了字节流,那字符流又是什么流?从字面意思上看,字节流是面向字节的流,字符流是针对unicode编码的字符流,字符的单位一般比字节大,字节可以处理任何数据类型,通常在处理文本文件内容时,字 ...

随机推荐

  1. 面试连环炮系列(二十):TCP的滑动窗口协议是什么

    TCP的滑动窗口协议是什么 滑动窗口协议,用于网络数据传输时的流量控制,以避免拥塞的发生.该协议允许发送方在停止并等待确认前发送多个数据分组.由于发送方不必每发一个分组就停下来等待确认,因此该协议可以 ...

  2. Android 插件化开发(一):Java 反射技术介绍

    写在前面:学习插件化开发推荐书籍<Android 插件化开发指南>,本系列博客所整理知识部分内容出自此书. 在之前的项目架构的博文中,我们提到了项目插件化架构,提到插件化架构不得不提的到J ...

  3. vue/cli 3 引入 使用jQuery

    注意这里配置的是vue-cli3.0引入jquery的方法,不是vue-cli2.0的配置方法 一.安装jquery npm install jquery --save 二.一般安装成功后在packa ...

  4. Excel映射到实体-easyexcel工具

    来源 项目需要把Excel进行解析,并映射到对象属性,实现类似Mybatis的ORM的效果.使用的方式是自定义注解+POI,这种方式代码复杂而且不易于维护. easyexcel是阿里巴巴开源的一个框架 ...

  5. 【每天一题】LeetCode 0028. 字符串匹配

    开源地址:https://github.com/jiauzhang/algorithms 题目描述 * https://leetcode-cn.com/problems/implement-strst ...

  6. Dynamics CRM中的地址知多D?

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复169或者20151105可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! CRM中的地址以前不是很了解,定 ...

  7. JS PopupAlert

    JS PopupAlert 可以在 JavaScript 中创建三种消息框:警告框.确认框.提示框. 警告框 警告框经常用于确保用户可以得到某些信息. 当警告框出现后,用户需要点击确定按钮才能继续进行 ...

  8. 入职小白随笔之Android四大组件——广播详解(broadcast)

    Broadcast 广播机制简介 Android中的广播主要可以分为两种类型:标准广播和有序广播. 标准广播:是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播 ...

  9. RMAN异机恢复主要步骤和注意事项

    以后改行了或老了回头看看,我曾经会这些,也是件愉快的事 [备份]--创建目录[oracle@test20 backup]$ mkdir -p /home/oracle/backup--备份脚本[ora ...

  10. SqlServer性能优化,查看CPU、内存占用大的会话及SQL语句

    1,查看CPU占用量最高的会话及SQL语句   select spid,cmd,cpu,physical_io,memusage, (select top 1 [text] from ::fn_get ...