美文网首页
JAVA中字节流和字符流的区别

JAVA中字节流和字符流的区别

作者: 藝龍 | 来源:发表于2017-10-23 15:01 被阅读0次

流分类:


1. Java的字节流

  • InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先。

2. Java的字符流

  • Reader是所有读取字符串输入流的祖先,而Writer是所有输出字符串的祖先。

InputStream,OutputStream,Reader,Writer都是抽象类。所以不能直接new

字节流是最基本的,所有的InputStreamOutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的,
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化,
这两个之间通过InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联,
在实际开发中出现的汉字问题实际上都是在字符流和字节流之间转化不统一而造成的

在从字节流转化为字符流时,实际上就是byte[]转化为String时,
public String(byte bytes[], String charsetName)
有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统的lang
而在字符流转化为字节流时,实际上是String转化为byte[]时,
byte[] String.getBytes(String charsetName)
也是一样的道理

至于java.io中还出现了许多其他的流,按主要是为了提高性能和使用方便,
如BufferedInputStream,PipedInputStream等

Reader                   InputStream
  ├BufferedReader             ├StringBufferInputStream
  │    └LineNumberReader      ├ObjectInputStream
  ├CharArrayReader            ├ByteArrayInputStream
  ├InputStreamReader          ├InputStream
  │    └FileReader            ├FileInputStream
  ├FilterReader               ├FilterInputStream
  │    └PushbackReader        ├AudioInputStream
  ├PipedReader                ├PipedInputStream
  └StringReader               └SequenceInputStream
   
  Write                  OutputStream
  ├BufferedWriter             ├BufferedOutputStream
  ├CharArrayWriter            ├ObjectOutputStream
  ├OutputStreamWriter         ├ByteArrayOutputStream
  │    └FileWriter            ├FileOutputStream
  ├FilterWriter               ├FilterOutputStream
  ├PrintWriter                │    └PrintStream
  ├PipedWriter                └PipedOutputStream
  └StringWriter               

相关文章

  • Java 中字节流与字符流的区别?

    Java 中字节流与字符流的区别? 知乎高赞回答。参考:Java 中字节流与字符流的区别?[https://www...

  • Java IO 流学习总结

    Java流操作有关的类或接口 Java流类图结构: 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字...

  • I/O

    Java I/O 总结 理解Java中字符流与字节流的区别 深入学习 Java 序列化 Java I/O 操作及优...

  • Java/C++ IO 实例详解

    1 Java 字节流(byte),字符流(char,string)区别? 什么是流:IO操作就是流。比如,标准输入...

  • Java IO和NIO

    Java IO Java IO面向流,按照流中的最小数据单元可以分为字节流和字符流,顾名思义分别以字节和字符作为数...

  • Java IO详解

    1. Java中字节流和字符流 字节(Byte)和字符(Character)的大小: 1 byte = 8bit[...

  • JAVA中字节流和字符流的区别

    流分类: 1. Java的字节流 InputStream是所有字节输入流的祖先,而OutputStream是所有字...

  • Java IO流的使用

    下面部分内容是参考Oubo的博客——Java IO流学习总结 Java流操作有关的类或者接口: 字符流和字节流 字...

  • IO Stream - 字符流

    字符流 字符流出现的原因1.字符流介绍:由于字节流操作中文不是特别方便,所以Java提供了字符流字符流 = 字节流...

  • 关于IO流操作的几种方式

    字节流和字符流的区别:读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能...

网友评论

      本文标题:JAVA中字节流和字符流的区别

      本文链接:https://www.haomeiwen.com/subject/qrrauxtx.html