位元組陣列 base64, 流之間關係

2022-08-24 04:51:15 字數 3825 閱讀 9897

1.字串轉換成位元組陣列

byte array = encoding.utf8.getbytes("你好");

2.位元組陣列轉換成base64字串

string base64 = convert.tobase64string(array);

3.base64string轉換成位元組陣列

byte bitarray = convert.frombase64string(base64string);

首先要明白它們本身是由什麼組成的:

流:二進位制

位元組:無符號整數

字元:unicode編碼字元

字串:多個unicode編碼字元

那麼在.net下它們之間如何轉化呢?

一般是遵守以下規則:

流->位元組陣列->字元陣列->字串

下面就來具體談談轉化的語法

流->位元組陣列

memorystream ms = new memorystream();

byte buffer = new byte[ms.length];

ms.read(buffer, 0, (int)ms.length);

位元組陣列->流

byte buffer = new byte[10];

memorystream ms = new memorystream(buffer);

位元組陣列->字元陣列

1.byte buffer = new byte[10];

char ch = new asciiencoding().getchars(buffer);

//或者:char ch = encoding.utf8.getchars(buffer)

2.byte buffer = new byte[10];

char ch = new char[10];

for(int i=0; ich[i] = convert.tochar(buffer[i]);

字元陣列->位元組陣列

1.char ch = new char[10];

byte buffer = new asciiencoding().getbytes(ch);

//或者:byte buffer = encoding.utf8.getbytes(ch)

2.char ch = new char[10];

byte buffer = new byte[10];

for(int i=0; ibuffer[i] = convert.tobyte(ch[i]);

字元陣列->字串

char ch = new char[10];

string str = new string(ch);

字串->字元陣列

string str = "abcde";

char ch=str .tochararray();

位元組陣列->字串

byte buffer = new byte[10];

string str = system.text.encoding.utf8.getstring(buffer);

//或者:string str = new asciiencoding().getstring(buffer);

字串->位元組陣列

string str = "abcde";

byte buffer=system.text.encoding.utf8.getbytes(str);

//或者:byte buffer= new asciiencoding().getbytes(str);

說明:主要就是用到了convert類和system.text命名空間下的類,encoding是靜態類,asciiencoding是實體類,方法都是一樣的!

參考文章:

c#中 uint--byte--char--string相互轉換彙總

字串如何與流相互轉換?

char 同 byte 有什麼區別?

c++中 unsigned char != byte

資料流與字串之間的轉換!

檔案流轉換為string(二進位制轉換為字串)

首先要明白它們本身是由什麼組成的:

流:二進位制

位元組:無符號整數

字元:unicode編碼字元

字串:多個unicode編碼字元

那麼在.net下它們之間如何轉化呢?

一般是遵守以下規則:

流->位元組陣列->字元陣列->字串

下面就來具體談談轉化的語法

流->位元組陣列

memorystream ms = new memorystream();

byte buffer = new byte[ms.length];

ms.read(buffer, 0, (int)ms.length);

位元組陣列->流

byte buffer = new byte[10];

memorystream ms = new memorystream(buffer);

位元組陣列->字元陣列

1.byte buffer = new byte[10];

char ch = new asciiencoding().getchars(buffer);

//或者:char ch = encoding.utf8.getchars(buffer)

2.byte buffer = new byte[10];

char ch = new char[10];

for(int i=0; ich[i] = convert.tochar(buffer[i]);

字元陣列->位元組陣列

1.char ch = new char[10];

byte buffer = new asciiencoding().getbytes(ch);

//或者:byte buffer = encoding.utf8.getbytes(ch)

2.char ch = new char[10];

byte buffer = new byte[10];

for(int i=0; ibuffer[i] = convert.tobyte(ch[i]);

字元陣列->字串

char ch = new char[10];

string str = new string(ch);

字串->字元陣列

string str = "abcde";

char ch=str .tochararray();

位元組陣列->字串

byte buffer = new byte[10];

string str = system.text.encoding.utf8.getstring(buffer);

//或者:string str = new asciiencoding().getstring(buffer);

字串->位元組陣列

string str = "abcde";

byte buffer=system.text.encoding.utf8.getbytes(str);

//或者:byte buffer= new asciiencoding().getbytes(str);

說明:主要就是用到了convert類和system.text命名空間下的類,encoding是靜態類,asciiencoding是實體類,方法都是一樣的!

參考文章:

c#中 uint--byte--char--string相互轉換彙總

字串如何與流相互轉換?

char 同 byte 有什麼區別?

c++中 unsigned char != byte

資料流與字串之間的轉換!

檔案流轉換為string(二進位制轉換為字串)

Base64編碼位元組陣列

base64編碼處理 public final class base64 for int i z i a i for int i z i a i for int i 9 i 0 i base64 alphabet 62 base64 alphabet 63 for int i 0 i 25 i fo...

位元組陣列流

位元組陣列流 bytearrayinputstream 包含乙個內部緩衝區,該緩衝區包含從流中讀取的位元組。內部計數器跟蹤read方法要提供的下乙個位元組。關閉bytearrayinputstream無效。此類中的方法再關閉流後依然可以被呼叫,而不會產生任何ioexception.bytearray...

位元組陣列輸入流和位元組陣列輸出流實現檔案的拷貝

整理思路如下 為什麼要這樣進行copy 我更願意稱它為傳輸 因為這樣以二進位制的形式傳輸檔案,可以實現檔案的遠距離傳輸,即通過這樣可以實現伺服器與使用者之間檔案的傳輸。我們在本地傳送請求時,計算機將請求編碼為二進位制檔案,當傳送到伺服器後,伺服器將二進位制檔案進行解碼,從而實現檔案的傳輸 那麼如何將...