中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java字節字符轉換流的操作詳解

發布時間:2021-09-14 23:37:18 來源:億速云 閱讀:135 作者:chen 欄目:編程語言

本篇內容主要講解“java字節字符轉換流的操作詳解”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“java字節字符轉換流的操作詳解”吧!

一 基本概念

1、認識文本和文本文件

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

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

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

3、字符流的基本實現

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

4、UE編碼查看方法

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

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這個字符數組,從第0個位置開始放置,最多放buffer.length個         返回的是讀到的字符的個數        */        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創建的utf-8和用myeclipse創建的utf-8,文件大小不一樣,該程序是用myeclipse創建的utf-8進行測試的。

五 utf-8無bom和utf-8什么區別

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

六 utf-8編碼說明

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

七 編碼實例

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

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

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

到此,相信大家對“java字節字符轉換流的操作詳解”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通榆县| 和林格尔县| 黑龙江省| 静海县| 大荔县| 边坝县| 广元市| 兰考县| 定兴县| 宁乡县| 额尔古纳市| 翁源县| 八宿县| 巴马| 长岭县| 六枝特区| 涞水县| 林西县| 阜宁县| 沈丘县| 绥阳县| 宁波市| 鹤岗市| 垦利县| 昌江| 沭阳县| 古田县| 五常市| 夹江县| 通道| 昂仁县| 彭山县| 周宁县| 双辽市| 微山县| 彩票| 甘洛县| 孝感市| 宜阳县| 营口市| 资兴市|