你知道在你的編碼字節數組存儲?
你需要Encoding.GetString方法
這裏是MSDN例如
using System;
using System.IO;
using System.Text;
public class Example
{
const int MAX_BUFFER_SIZE = 2048;
static Encoding enc8 = Encoding.UTF8;
public static void Main()
{
FileStream fStream = new FileStream(@".\Utf8Example.txt", FileMode.Open);
string contents = null;
// If file size is small, read in a single operation.
if (fStream.Length <= MAX_BUFFER_SIZE) {
Byte[] bytes = new Byte[fStream.Length];
fStream.Read(bytes, 0, bytes.Length);
contents = enc8.GetString(bytes);
}
// If file size exceeds buffer size, perform multiple reads.
else {
contents = ReadFromBuffer(fStream);
}
fStream.Close();
Console.WriteLine(contents);
}
private static string ReadFromBuffer(FileStream fStream)
{
Byte[] bytes = new Byte[MAX_BUFFER_SIZE];
string output = String.Empty;
Decoder decoder8 = enc8.GetDecoder();
while (fStream.Position < fStream.Length) {
int nBytes = fStream.Read(bytes, 0, bytes.Length);
int nChars = decoder8.GetCharCount(bytes, 0, nBytes);
char[] chars = new char[nChars];
nChars = decoder8.GetChars(bytes, 0, nBytes, chars, 0);
output += new String(chars, 0, nChars);
}
return output;
}
}
// The example displays the following output:
// This is a UTF-8-encoded file that contains primarily Latin text, although it
// does list the first twelve letters of the Russian (Cyrillic) alphabet:
//
// А б в г д е ё ж з и й к
//
// The goal is to save this file, then open and decode it as a binary stream.
編輯
如果你想在十六進制格式打印出來的字節數組,BitConverter是你在找什麼形式,這裏是MSDN示例
// Example of the BitConverter.ToString(byte[ ]) method.
using System;
class BytesToStringDemo
{
// Display a byte array with a name.
public static void WriteByteArray(byte[ ] bytes, string name)
{
const string underLine = "--------------------------------";
Console.WriteLine(name);
Console.WriteLine(underLine.Substring(0,
Math.Min(name.Length, underLine.Length)));
Console.WriteLine(BitConverter.ToString(bytes));
Console.WriteLine();
}
public static void Main()
{
byte[ ] arrayOne = {
0, 1, 2, 4, 8, 16, 32, 64, 128, 255 };
byte[ ] arrayTwo = {
32, 0, 0, 42, 0, 65, 0, 125, 0, 197,
0, 168, 3, 41, 4, 172, 32 };
byte[ ] arrayThree = {
15, 0, 0, 128, 16, 39, 240, 216, 241, 255,
127 };
byte[ ] arrayFour = {
15, 0, 0, 0, 0, 16, 0, 255, 3, 0,
0, 202, 154, 59, 255, 255, 255, 255, 127 };
Console.WriteLine("This example of the " +
"BitConverter.ToString(byte[ ]) \n" +
"method generates the following output.\n");
WriteByteArray(arrayOne, "arrayOne");
WriteByteArray(arrayTwo, "arrayTwo");
WriteByteArray(arrayThree, "arrayThree");
WriteByteArray(arrayFour, "arrayFour");
}
}
/*
This example of the BitConverter.ToString(byte[ ])
method generates the following output.
arrayOne
--------
00-01-02-04-08-10-20-40-80-FF
arrayTwo
--------
20-00-00-2A-00-41-00-7D-00-C5-00-A8-03-29-04-AC-20
arrayThree
----------
0F-00-00-80-10-27-F0-D8-F1-FF-7F
arrayFour
---------
0F-00-00-00-00-10-00-FF-03-00-00-CA-9A-3B-FF-FF-FF-FF-7F
*/
我懷疑你不知道 - 但什麼文字編碼呢你二進制文件格式使用? – tomfanning
問題是,我們不知道您嘗試過哪些解決方案。即你見過[這個答案](http://stackoverflow.com/a/311179/15498)?另外,在二進制閱讀器的內存流中封裝一個字節數組,然後將其轉換回字節數組? –
@Damien_The_Unbeliever - 接受答案中的兩種方法實際上都有效;但它們只能用於大約10kb的文件。其他任何事情都需要很長時間才能實現。 (超過1分鐘閱讀)。 任何想法? – Anteara