欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java字節(jié)字符轉換流操作詳解

 更新時間:2019年09月10日 10:19:39   作者:cakincqm  
這篇文章主要介紹了java字節(jié)字符轉換流操作,結合實例形式詳細分析了Java字符流轉換相關原理、實現(xiàn)方法及操作注意事項,需要的朋友可以參考下

本文實例講述了java字節(jié)字符轉換流操作。分享給大家供大家參考,具體如下:

一 基本概念

1、認識文本和文本文件

java的文本(char)是16位無符號,是字符的unicode編碼(雙字節(jié)編碼)
文件是byte byte byte 的數(shù)據(jù)序列
文本文件是文本(char)序列按照某種編碼方案(utf-8,utf-16be,gbk)序列化為byte的存儲結果。

2、字符流(Reader Writer)---操作的都是文本文件

字符的處理:一次處理一個字符
字符的底層任然是基本的字節(jié)序列

3、字符流的基本實現(xiàn)

InputStreamReader完成byte流解析未char流,按照編碼解析
OutputStreamWriter 提供完成char流到byte流,按照編碼處理

4、UE編碼查看方法

UltraEdit-32的狀態(tài)欄可以顯示文件的編碼類型,詳細情況如下:

5、Myeclipse編碼查看方法

Project->Property->Resource

二 實例

package com.imooc.io;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class IsrAndOswDemo {
    public static void main(String[] args)throws IOException {
        FileInputStream in = new FileInputStream("e:\\javaio\\test2.txt");
        InputStreamReader isr = new InputStreamReader(in,"utf-8");//默認項目的編碼,操作的時候,要寫文件本身的編碼格式
        FileOutputStream out = new FileOutputStream("e:\\javaio\\test1.txt");
        OutputStreamWriter osw = new OutputStreamWriter(out,"utf-8");
        /*int c ;
        while((c = isr.read())!=-1){
            System.out.print((char)c);
        }*/
        char[] buffer = new char[8*1024];
        int c;
        /*批量讀取,放入buffer這個字符數(shù)組,從第0個位置開始放置,最多放buffer.length個
         返回的是讀到的字符的個數(shù)
        */
        while(( c = isr.read(buffer,0,buffer.length))!=-1){
            String s = new String(buffer,0,c);
            System.out.print(s);
            osw.write(buffer,0,c);
            osw.flush();
        }
        isr.close();
        osw.close();
    }
}

三 運行結果

中國1jd

四 說明

用UE創(chuàng)建的utf-8和用myeclipse創(chuàng)建的utf-8,文件大小不一樣,該程序是用myeclipse創(chuàng)建的utf-8進行測試的。

五 utf-8無bom和utf-8什么區(qū)別

utf-8+bom比utf-8多了三個字節(jié)前綴:0xEF0xBB0xBF,有這三個字節(jié)前綴的文本或字符串,程序可以自動判斷它為utf-8格式,并按照utf-8格式來解析文本或字符串,否則,一個文本或者字符串在未知編碼的情況下,需要按照字符編碼規(guī)范去一個個驗證

六 utf-8編碼說明

https://baike.baidu.com/item/UTF-8/481798?fr=aladdin

七 編碼實例

打開”記事本“程序Notepad.exe,新建一個文本文件,內(nèi)容就是一個”嚴“字,依次采用ANSI,Unicode,Unicode big endian 和 UTF-8編碼方式保存。

然后,用文本編輯軟件UltraEdit中的”編輯-十六進制函數(shù)“,觀察該文件的內(nèi)部編碼方式。

1)ANSI:文件的編碼就是兩個字節(jié)“D1 CF”,這正是“嚴”的GB2312編碼,這也暗示GB2312是采用大頭方式存儲的。
2)Unicode:編碼是四個字節(jié)“FF FE 25 4E”,其中“FF FE”表明是小頭方式存儲,真正的編碼是4E25。
3)Unicode big endian:編碼是四個字節(jié)“FE FF 4E 25”,其中“FE FF”表明是大頭方式存儲。
4)UTF-8:編碼是六個字節(jié)“EF BB BF E4 B8 A5”,前三個字節(jié)“EF BB BF”表示這是UTF-8編碼,后三個“E4B8A5”就是“嚴”的具體編碼,它的存儲順序與編碼順序是一致的。

更多關于java相關內(nèi)容感興趣的讀者可查看本站專題:《Java字符與字符串操作技巧總結》、《Java數(shù)組操作技巧總結》、《Java數(shù)學運算技巧總結》、《Java數(shù)據(jù)結構與算法教程》及《Java操作DOM節(jié)點技巧總結

希望本文所述對大家java程序設計有所幫助。

相關文章

  • Sublime Text 打開Java文檔中文亂碼的解決方案

    Sublime Text 打開Java文檔中文亂碼的解決方案

    這篇文章主要介紹了Sublime Text 中文亂碼的解決方案,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • Spring源碼解析后置處理器梳理總結

    Spring源碼解析后置處理器梳理總結

    這篇文章主要介紹了Spring源碼解析后置處理器梳理總結,在前面幾篇文章中梳理了Spring中bean的創(chuàng)建過程,在這個過程中各式各樣的后置處理器發(fā)揮了不同的作用,可以說后置處理器貫穿了bean的實例化以及初始化過程
    2022-07-07
  • Java別名Alias是如何工作的

    Java別名Alias是如何工作的

    這篇文章主要介紹了Java別名Alias是如何工作的,別名的問題是,當用戶寫入特定對象時,其他幾個引用的所有者不希望該對象發(fā)生更改,下文相關介紹需要的小伙伴可以參考一下
    2022-04-04
  • java實現(xiàn)動態(tài)代理方法淺析

    java實現(xiàn)動態(tài)代理方法淺析

    這篇文章主要介紹了java實現(xiàn)動態(tài)代理方法淺析,很實用的功能,需要的朋友可以參考下
    2014-08-08
  • SpringBoot中使用Quartz設置定時任務的實例詳解

    SpringBoot中使用Quartz設置定時任務的實例詳解

    Quartz是OpenSymphony開源組織在任務調(diào)度領域的一個開源項目,完全基于 Java 實現(xiàn),本文小編給大家介紹了SpringBoot中如何使用Quartz設置定時任務,文中通過代碼示例給大家講解的非常詳細,需要的朋友可以參考下
    2023-12-12
  • java自帶排序使用

    java自帶排序使用

    這篇文章主要給大家分享了java自帶排序使用,該方法是升序排序,方法的內(nèi)部采用了快排實現(xiàn),但該方法是?穩(wěn)定的。下面一起來看看文章的詳細介紹吧
    2021-12-12
  • java類成員中的訪問級別淺析

    java類成員中的訪問級別淺析

    在本篇文章里小編給大家整理的是一篇關于java類成員中的訪問級別淺析內(nèi)容,有興趣的朋友們跟著學習下。
    2021-01-01
  • Java+mysql實現(xiàn)學籍管理系統(tǒng)

    Java+mysql實現(xiàn)學籍管理系統(tǒng)

    這篇文章主要為大家詳細介紹了Java+mysql實現(xiàn)學籍管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Java實現(xiàn)跨服務器上傳文件功能

    Java實現(xiàn)跨服務器上傳文件功能

    這篇文章主要為大家詳細介紹了Java實現(xiàn)跨服務器上傳文件功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • java實現(xiàn)九宮格游戲

    java實現(xiàn)九宮格游戲

    這篇文章主要為大家詳細介紹了java實現(xiàn)九宮格游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11

最新評論