using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace 流_字节_字符_字符串
{
class Program
{
#region 简单介绍
//流:二进制
//字节:无符号整数
//字符:Unicode编码字符
//字符串:多个Unicode编码字符
#endregion
static void Main(string[] args)
{
//byte a = 99;
//byte b = 199;
//byte c =(byte) (a + b);//这边溢出等于42
//Console.WriteLine(c);
string str = "huage1234";
using (MemoryStream m_stream = new MemoryStream())
{
Console.WriteLine(string.Format("初始字符串:{0}", str));
if (m_stream.CanWrite)//如果可写入
{
byte[] strBytes = Encoding.Default.GetBytes(str);//string->byte[]
//从数组中的第一个位置开始写入,长度为3,写完之后stream里面有数据
m_stream.Write(strBytes, 0, 3);//byte[]->stream
Console.WriteLine("现在Stream.Postion在第{0}位置", m_stream.Position + 1);
}
byte[] resBytes = new byte[m_stream.Length];
m_stream.Position = 0;//这边要设置一下stream的起始位置,不然读取的时候从不是起始位置读取到不全的数据
var count = m_stream.Read(resBytes, 0, (int)resBytes.Length);//stream->byte[]
var resStr = Encoding.Default.GetString(resBytes);//byte[]->字符串
Console.WriteLine(resStr);
}
char[] charArr = str.ToCharArray();//string->char[]
string res = new string(charArr);//char[]->string
string charStr = "";
foreach (var a in charArr) //char[]->string
charStr += a;
byte[] charBytes = Encoding.Default.GetBytes(charArr);//char[]->byte[]
char[] byteChar = Encoding.Default.GetChars(charBytes);//byte[]->char[]
byte[] charBytes1 = new byte[charArr.Length];
char[] byteChar1 = new char[charBytes1.Length];
for (var i = 0; i < charArr.Length; i++)
charBytes1[i] = Convert.ToByte(charArr[i]);//char[]->byte[]
for (var j = 0; j < charBytes1.Length; j++)
byteChar1[j] = Convert.ToChar(charBytes1[j]);//byte[]->char[]
Console.ReadKey();
}
}
}