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. Java 从入门到进阶之路(十四)

    在之前的文章我们介绍了一下 Java 中的抽象类和抽象方法,本章我们来看一下 Java 中的接口. 在日常生活中,我们会接触到很多类似接口的问题,比如 USB 接口,我们在电脑上插鼠标,键盘,U盘的时 ...

  2. Python面向对象-类、实例的绑定属性、绑定方法和__slots__

    绑定属性 从之前的文章中,我们知道python是动态语言——实例可以绑定任意属性. 那如果实例绑定的属性和类的属性名一样的话,会是什么情况呢? >>> class Student(o ...

  3. 设计模式-单例模式code

    package singeton; import java.security.SecureRandom; /** * @author Zero * @since 2019-08-13. * Descr ...

  4. numpy的基本API(四)——拼接、拆分、添加、删除

    numpy的基本拼接.拆分.添加.删除API iwehdio的博客园:https://www.cnblogs.com/iwehdio/ 1.np.concatenate((a, b), axis=0) ...

  5. Jenkins之自动部署、代码安全扫描、自动化接口测试

    搭建Jenkins wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.reporpm --i ...

  6. 对token机制的学习和分析

    token,中文意思为令牌,是用户登录后会返回的一个字符串,里面包括用户信息.登录时间等,但是是加密过的密文,其加解密方式由后端决定. 在登录之后的接口请求中,前端需在请求中统一加上token,从而识 ...

  7. IT兄弟连 HTML5教程 DIV+CSS网页标准化布局的优势

    标准的网页都需要对内容进行布局,以前都是采用表格的定位技术,从2005年开始逐步转向DIV+CSS的布局方式,目前绝大多数的网站都是采用这种布局方式.使用DIV+CSS对网站进行布局符合W3C标准,采 ...

  8. wpf 模拟抖音很火的罗盘时钟,附源码,下载就能跑

    wpf 模拟抖音很火的罗盘时钟,附源码 前端时间突然发现,抖音火了个壁纸,就是黑底蕾丝~~~  错错错,黑底白字的罗盘时钟! 作为程序员的我,也觉得很新颖,所以想空了研究下,这不,空下来了就用wpf, ...

  9. js-03-if条件判断

    一.swich case判断语句eg <script> swich( exp){ case 值1: 执行的代码段: break; case 值2: 执行的代码段: break; ..... ...

  10. String判断为空的方式

    今天遇到的笔试题: //这样的判空方式是否正确 if(!str.equals("")&&str!=null) 之前我一直都是这么写的,哪知道有什么问题呀,然后面试官 ...