• java基础记录》字节与字符 java程序员


    所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列.   
    int   i=   7   那么i为一个字符.在Java中用两个字节表示值为0x0007   

    ______________________________________________________________________________________________ 


    1.字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串;   

    2.   字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以。   

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

    在从字节流转化为字符流时,实际上就是byte[]转化为String时, 
    public   String(byte   bytes[],   String   charsetName) 
    如//把字符串按GB2312解码   
    hello   =   new   String(hello.getBytes(),   "GB2312 ");   
    有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统的lang 
    而在字符流转化为字节流时,实际上是String转化为byte[]时, 
    byte[]         String.getBytes(String   charsetName) 
    如//把字符串按UTF8解码成字节流,并打印相应的字节   
      hello   =   new   String(hello.getBytes( "UTF8 "));   
    也是一样的道理   

    至于java.io中还出现了许多其他的流,按主要是为了提高性能和使用方便, 
    如BufferedInputStream,PipedInputStream等 
  • 相关阅读:
    Freemarker list的使用
    Java通过流对MP4视频文件进行加密,H5 video播放流
    阿里云API公共参数的获取
    javah找不到类文件
    Java调用打印机打印指定路径图片
    Java绘制图片并进行合成
    Java生成二维码和解析二维码URL
    计算机网络第六版知识大纲
    Linux安装mysql mysql5.5.40 <NIOT>
    rsync unison+inotify双向实时同步
  • 原文地址:https://www.cnblogs.com/java20130725/p/3215704.html
Copyright © 2020-2023  润新知