Character流与Byte流的区别(转)

Character流与Byte流的区别是 
A) 每次读入的字节数不同 B) 前者带有缓冲,后者没有
C) 前者是字符读写,后者是字节读写 D) 二者没有区别,可以互换使用

Java的流操作分为字节流和字符流两种。字节流与字符流主要的区别是他们的的处理方式
字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的。但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的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等

常识:

对于GBK编码标准,英文占用1个字节,中文占用2个字节
对于UTF-8编码标准,英文占用1个字节,中文占用3个字节
对于Unicode编码标准,英文中文都是2个字节。这也是为什么叫做unicode

转载地址:http://dylanxu.iteye.com/blog/1322066

时间: 2024-08-07 17:17:44

Character流与Byte流的区别(转)的相关文章

【转载】C#.NET WebApi返回各种类型(图片/json数据/字符串),.net图片转二进制流或byte

C#.NET WebApi返回各种类型(图片/json数据/字符串),.net图片转二进制流或byte 转载:http://www.itdos.com/Mvc/20150302/0741255.html using System.IO; /// <summary> /// WebApi返回图片 /// </summary> public HttpResponseMessage GetQrCode() { var imgPath = @"D:\ITdosCom\Images

安卓保存图片到SD卡,使用byte流

头几天遇到一个问题:在安卓开发应用中保存图片到SD卡,并且 用户在图库中搜到,类似于缓存的那种形式.最开始的第一想法是改一下后缀名,例如把一个图片保存为image1.txt,这样保存当然没问题,但在应用中读取中就不行了,后来也没研究为什么不能正常读取,毕竟这种办法太土鳖了... 今天有空上网搜了一下,发现使用byte流保存到SD卡就可以满足我的需求.下面我把正常保存图片文件的代码和保存图片byte流的代码都贴出来,方便大家共同学习参考. 假设我的图片的名字为 image1. 正常保存图片文件的代

使用buffered流结合byte数组,读入文件中的内容,包括中文字符

package com.itcast.demo05.Buffered; import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.IOException; /** * @author newcityman * @date 2019/7/28 - 16:35 * 使用buffered流结合byte数组,读入文件中的内容,包括中文字符 */public class BufferedInputStr

File流与IO流 看这一篇就够了

主要内容 File类 递归 IO流 字节流 字符流 异常处理 Properties 缓冲流 转换流 序列化流 打印流 学习目标 [ ] 能够说出File对象的创建方式 [ ] 能够说出File类获取名称的方法名称 [ ] 能够说出File类获取绝对路径的方法名称 [ ] 能够说出File类获取文件大小的方法名称 [ ] 能够说出File类判断是否是文件的方法名称 [ ] 能够说出File类判断是否是文件夹的方法名称 [ ] 能够辨别相对路径和绝对路径 [ ] 能够遍历文件夹 [ ] 能够解释递归

IO流(三):字符流及其缓冲流

一.字符流概述 (一).本质 1.字节流操作中文数据不是特别的方便,所以就出现了转换流. 转换流的作用就是把字节流转换字符流来使用. 2.转换流其实是一个字符流. 字符流 = 字节流 + 编码表 (二)编码表 1.编码表简介: ASCII ISO-8859-1 GB2312 GBK GB18030 UTF-8 (三)String中的编码 1.内容: 1)编码 String --> byte[] byte[] getBytes(String charsetName):使用指定的字符集合把字符串编码

IO-05内存操作流06管道流

JAVA中可以将输出的位置设置在内存上,此时使用ByteArrayInputStream,ByteArrayOutputStream来完成输入,输出功能. 利用这两个类实现大小字母的转换: package lianxijihe; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; impo

文本流与二进制流

一. 基本知识: 1. 二进制文件与文本文件的区别:    将文件看作是由一个一个字节(byte) 组成的, 那么文本文件中的每个字节的最高位都是0,也就是说文本文件使用了一个字节中的七位来表示所有的信息,而二进制文件则是将字节中的所有位都用上了,这就是两者的区别:接着,第二个问题就是文件按照文本方式或者二进制方式打开,两者会有什么不同呢?其实不管是二进制文件也好,还是文本文件也好,都是一连串的0和1,但是打开方式不同,对于这些0和1的处理也就不同.如果按照文本方式打开,在打开的时候会进行tra

黑马程序员——Java基础--IO流(一)---字符流和字节流

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.IO流的介绍及体系 IO流用来处理设备之间的数据传输.java对数据的操作是通过流的方式.java用于操作流的对象都在IO包中. 输入流和输出流相对于内存设备而言:将外设中的数据读取到内存中:输入.将内存中的数据写出到外设中:输出. 流按照操作数据分为两种:字节流和字符流. 字符流的由来:其实就是字节流读取文字字节数据后,不直接操作而是先查指定的编码表,获取对应的文字,再对这个文字进行操作

IO流与NIO流

(转自CSDN) IO流上:概述.字符流.缓冲区(java基础) 一.IO流概述 概述: IO流简单来说就是Input和Output流,IO流主要是用来处理设备之间的数据传输,Java对于数据的操作都是通过流实现,而java用于操作流的对象都在IO包中. 分类: 按操作数据分为:字节流和字符流. 如:Reader和InpurStream 按流向分:输入流和输出流.如:InputStream和OutputStream IO流常用的基类: * InputStream    ,    OutputSt