1. Java输入输出(I/O)流的知识回顾:

补充:因为这篇文章是基于上一篇的延续,因此将上一篇进行简单的回顾,以便理解本节内容。

1)输入输出(I/O)流分类:共分为字节型输入输出流和字符型输入输出流:

(1)字节型输入输出流:面向byte数组,它们的父类是InputStream和OutputStream

具体内容参考下边的链接:

(2)字符型输入输出流:面向char数组或者String,它们的父类是Reader和Writer

具体内容,见下边的具体讲解。

2)常用输入输出流图谱:

2. 常用字符流(字符流父类、字符转换流、缓冲字符流、过滤流)

(1)字符型输入输出流的父类:

1)简介:

Reader:是字符型输入流的父类,可以针对char数组或者String类型的内容,且是抽象类,不能用自身的构造函数初始化;

Writer:是字符型输出流的父类,可以针对char数组或者String类型的内容,且是抽象类,不能自身的构造函数初始化。

2)Reader的常用方法:

Int read(): 读取一个字符,返回int值”低16”位有效。

Int read(char[] chs): 从该流中读取一个字符串数组的length个字符并存入该数组,返回值为实际读取到的字符量。

3)Wtriter的常用方法:

Void write(int c):写出一个字符,写出给定int值”低16”位表示的字符。

Void write(char[] chs):将给定字符数组中所有字符写出。

Void write(String str):将给定的字符串写出。

Void write(char[] chs, int offset, int len):将给定的字符数组中从offset处开始连续的len个字符写出。

(2)字符转换流的输入输出:

1)字符转换输入流:InputStreamReader

使用该流可以设置字符集,并按照指定的字符集从流中按照该编码将字节数据转换为字符并读取。常用的构造函数如下:

InputStreamReader(InputStream in, String charsetName)

基于给定的字节输入流以及字符编码创建InputStreamReader

InputStreamReader(InputStream in)

构造方法会根据系统默认字符集穿件InputStreamReader

2)字符转换输出流OutputStreamWriter

使用该流可以设置字符集,并按照指定的字符集将字符转换为对应字节后通过该流写出。常用的构造函数如下:

OutputStreamWriter(OutputStream out, String charsetName)

基于给定的字节输出流以及字符编码创建OutputStreamWriter

OutputStreamWriter(OutputStream out)

构造方法会根据系统默认字符集创建OutputStreamWriter

(3)缓冲字符流的输入输出:

1)缓冲字符输入流BufferedReader:

其内部提供了缓冲区,可以提高读取的效率.常用的构造函数:

BufferedReader(Reader reader)

补充:BufferedReader提供了一个可以便于读取一行字符串的方法:

String readLine():该方法连续读取一行字符串,知道读取到换行符为止,返回字符串中不包含该换行符。

2) 缓冲字符输出流BufferedWriter:

其内部提供了缓冲区,可以提高内容写出的效率.常用的构造函数:

BufferedWriter(Writer out)

代码应用实例一(利用字符流,按行读取文件中的内容):

InputStreamReader和BufferedReader连用:

代码应用实例二(将指定内容写入到文件中):

OutputStreamWriter和BufferedWriter连用:

(4)过滤字符流:

1)过滤流PrintWriter简介:

PrintWriter是具有自动涮新缓冲的字符输出流。提供了比较丰富的构造方法,如下:

PrintWriter(File file)

PrintWriter(String fileName)

PrintWriter(OutputStream out)

PrintWriter(OutputStream out, boolean autoFlush)

PrintWriter(Writer writer)

PrintWriter(Writer writer, boolean autoFlush)

其中参数为OutputStream与Writer的构造方法提供了一个可以传出boolean值参数,该参数用于表示PrintWriter是否具有自动刷新。

2)过滤流PrintWriter的常用方法:

print(String s)和println(String s)方法: PrintWriter提供了丰富的重载print与println方法。

其中println方法在输出目标数据后自动输出一个系统支持的换行符。

若该流是具有自动刷新的,那么每当通过println方法写出的内容都会被实际写出,而不是进行缓存。

Write(String s):将字符串写入到文件中

3)PrintWriter代码实例:

java字符流的父类_Java基于代码实战的字符流父类、字符转换流、缓冲字符流、过滤流...相关推荐

  1. java实现登录注册案例_Java基于IO版实现用户登录注册的案例

    下面小编就为大家带来一篇基于IO版的用户登录注册实例(Java).小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 今天学的是用户登录注册功能. 4个包: itcast.c ...

  2. java udp简单聊天程序_Java基于UDP协议实现简单的聊天室程序

    最近比较闲,一直在抽空回顾一些java方面的技术应用. 今天没什么事做,基于udp协议,写了一个非常简单的聊天室程序. 现在的工作,很少用到socket,也算是对java网络编程方面的一个简单回忆. ...

  3. java socket 传输压缩文件_java基于socket传输zip文件功能示例

    本文实例讲述了java基于socket传输zip文件的方法.分享给大家供大家参考,具体如下: 服务器端程序: import java.io.*; import java.net.*; import j ...

  4. java控制台输出五行字符串_java五行代码导出Excel

    已经写过两种Excel导出插件了.今天再安利一个极简的导出Excel的框架,导出无特殊格式要求的Excel,只需五行代码: 先看代码 再看效果 EasyExcel 本案例用到的框架是阿里推出的Easy ...

  5. java scp 上传文件_java基于Scp实现Linux下远程获取、上传文件

    前不久在项目开发中遇上的一个需求:需要在B机器上将A机器某路径下的文件拷贝到B机器上做保存. 简单分析下来,自己的理解就是:一个RPC,主要就是解决跨域传输文件的问题.在提前能拿到A机器的IP.Por ...

  6. 用java实现新闻迷你页_Java程序代码实现实例之一

    public class CaiPiao { public static void main(String[] args) { /* * 大乐透彩票模拟器: 规则: 前区01-35中随机生成5个号码 ...

  7. java赋值父类_java新手求助super和set给父类赋值!

    展开全部 class Animal { private int age; public Animal(){ } public Animal(int age){ this.age = age; } pu ...

  8. java程序设计高级教程答案_Java高级程序设计实战教程答案

    [简答题]如何决定选用 HashMap 还是 TreeMap ? [单选题]下面说法不正确的是 ______ . [简答题]请简述类编写规范. [简答题]遍历一个 List 有哪些不同的方式? [填空 ...

  9. java的尝试性问题_Java并发编程实战 03互斥锁 解决原子性问题

    文章系列 摘要 在上一篇文章02Java如何解决可见性和有序性问题当中,我们解决了可见性和有序性的问题,那么还有一个原子性问题咱们还没解决.在第一篇文章01并发编程的Bug源头当中,讲到了把一个或者多 ...

最新文章

  1. 入华十年,一家互联网外企的“另类”视频广告模式
  2. 放心,GPT-3 不会“杀死”编程
  3. redis中的quicklist
  4. NVisionXR_iOS教程六 —— 场景中对象交互
  5. Git Submodule
  6. 阿里巴巴的五大平台野心,让“连接”论成为过去式
  7. 算法:动态规划算法的最佳实践-背包问题
  8. Hopfield 神经网络及稳态性的证明
  9. python制作二维码并打印_通过python扫描二维码/条形码并打印数据
  10. 微信小程序 登陆过期,请重新授权
  11. python已停止工作请关闭该程序_解决PyCharm的Python.exe已经停止工作的问题
  12. ubuntu20.04上编译android 7.1
  13. 给十二星座女生送礼物的技巧
  14. 下午茶,几个笑话提提神
  15. 使用 eclipse 编写 xtend
  16. [sdx62]bitbake lighttpd出现NOTE: Reconnecting to bitbake server...
  17. 实时监控Mysql等数据库变化_进行数据同步_了解Maxwell_--MaxWell工作笔记001
  18. 正则测试以及练习网站
  19. 不知道PDF转PPT转换器哪个好用?分享三个简单好用的办公用具
  20. 计算机论文的摘要和关键词是什么意思,论文中的摘要和关键词是什么?

热门文章

  1. 商家应该怎么策划一场会员积分活动
  2. 电子相册模板从头学起
  3. 利用c语言设置密码错误循环,c语言运算符优先级与while循环案例
  4. 华硕Pro16安装deepin解决MT7921无线网卡和问题
  5. 叛乱2 linux服务器,叛乱沙漠风暴服务器配置教程_叛乱沙漠风暴怎么开服_玩游戏网...
  6. 华硕XTion Pro开发环境配置
  7. Hbuilder 打包、证书签名问题
  8. web开发之字体应用
  9. PHP学习(3)—在HTML中嵌入PHP
  10. SOA的实施加速电信业务流程更新