【Java】 IO流的再次认识

1 篇文章 0 订阅
1 篇文章 0 订阅

总体结构图




一.字节流和字符流的异同:


1 字节流是一个字节一个字节的读取数据。而字符流是一次读取一个或者多个字节时,先去查指定的编码表(UTF-8,GBK),然后再将字符返回。

2 字节流可以处理所有的数据类型(图片,音频,AVI视频...)。字符流只能处理字符数据。所以,处理纯文本数据的时候,优先考虑使用字符流,除此之外,都使用字节流。

二.IO流大体可分为节点流和处理流:


1 节点流:可以从固定的地方或者节点来读取数据

   File: FileReader,FileWriter。(字符流)

        FileInputStream,FileOutPutStream。(字节流)

  String:StringReader,StringWriter。(字符流)

        ....

2 处理流:对一个已经存在的流进行连接和封装,通过封装的流进行数据的读写操作。处理流的构造方法总是要带一个其他的流作为它的参数。一个流对其他流进行的多次包装也叫做流的链接。具体有:

2.1 缓冲流:

字节流:BufferedInputStream,BufferedOutPutStream。
字符流:BufferedWriter,BufferedReader。

(字节流同理)字符流 写入BufferedWriter bufw = new BufferedWriter(new FileWriter("test.txt")); 
( 字节流同理字符流读取BufferedReader buff = new BufferedReader(new FileReader("test.txt")); 

该类型的流有一个特有的方法:readLine();一次读一行,读到行标记时,将行标记之前的字符数据作为字符串进行返回,读到末尾时,返回NULL

2.2 转换流:

该类型是字符流和字节流的桥梁。该流的对象可以对读取数据的字节流按照设定的编码进行转换。

读取流: (默认编码) InputStreamReader(new InputStream)
   (设定编码) InputStreamReader(new InputStream,String charSet)
 
写入流: (默认编码) OutputStreamWriter(new OutputStream)
   (设定编码) OutputStreamWriter(new OutputStream,String charSer)
  比较:     (默认编码)  FileReader fr = new FileReader("test.txt"); ==== InputStreamReader isr = new InputStreamReader(new FileInputStream("test.txt"));
(设定编码)  FileReader fr = new FileReader("test.txt"); ==== InputStreamReader isr = new InputStreamReader(new FileInputStream("text.txt"),String charSet);

2.3 数据流:

该类型直接对一些基本类型的数据进行存储和读取,不需要进一步的住转换。

   读取:DataInputStream(InputStream)
    写入:DataOutputStream(OutputStream)

2.4 打印流:

PrintStream:是一个字节打印流
接受3种数据类型的值:1.字符串类型 2.File对象 3.OutputStream

PrintWriter:是一个字符打印流
接受4种数据类型的值: 1.字符串类型 2.File对象 3.OutpStream 4.Writer

2.5 对象流:

常用于try catch。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值