java字节流和字符流区别

1、位:

     数据存储的最小单位。每个二进制数字0或者1就是1个位;

2、字节:

     8个位构成一个字节;即:1 byte (字节)= 8 bit(位);

     1 KB = 1024 B(字节)                1 MB = 1024 KB;   (2^10 B)

     1 GB = 1024 MB;  (2^20 B)      1 TB = 1024 GB;   (2^30 B)

3、字符:

     a、A、中、+、*、の......均表示一个字符;

     一般 utf-8 编码下,一个汉字 字符 占用 3 个 字节;

     一般 gbk 编码下,一个汉字  字符  占用 2 个 字节;

4、字符集:

     即各种各个字符的集合,也就是说哪些汉字,字母(A、b、c)和符号(空格、引号..)会被收入标准中;

5、编码:

utf-8       jbk        

字节流和字符流比较


                         字节流                                        字符流


缓冲区                        有                                                          无  

类型          InputStream,OutputStream                         Reader,writer

处理                 二进制数据                                               文本数据

对象                  序列化 反序列化

关联           InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联。

字节流和字符流转化

01.//创建字节流

02.FileOutputStream fos = new FileOutputStream(new File("F:\\testSource\\newFile2.txt"));

03.//转换流包装输出流(将字节流转换成字符流)

04.OutputStreamWriter osw = new OutputStreamWriter(fos);

05.//向流中写入字符

06.osw.write("this ");

07.osw.write("is ");

08.osw.write("OutputStreamWriter");

09.//将流刷入文件

10.osw.flush();

11.//流关闭

12.fos.close();

字符流不能被转换成字节流

字节流和字符流扩展

文件,数组,管道,缓存,对象,字符串,


你可能感兴趣的:(java字节流和字符流区别)