例如一个包含了"123abc中国人"一串字符的"Q.txt"文件映射起来,在利用 Marshal.Copy()函数读取文件内容的时候怎么样才能准确地取出该字串中的每一个字符的值啊?我用Marshal.Copy(fHanel,tempChar,0,1)时读出的是"12"的二进制值,也就是说一次读出了两个字符,(tempChar 为char[]),我应该怎么做才能准确地读出里面的值呢?即: 1,2,3,a,b,c,中,国,人 依次读出?
解决方案 »
- 非泛型 类型“blEditor.IsEquals”不能与类型实参一起使用
- 基于WinForm的WCF应用
- SQL中同一个表按不同条件sum
- WebBrowse控件中能不能显示PDF文件
- 关于C#调用C++的DLL的问题(在线等待,解决马上给分)
- 怎么检索d:盘根目录下包括子目录的所有mp3文件名,并取得文件的路径?
- 向大虾们求C#视频教程
- 关于Winform问题
- 怎么把数据源都遍历出来?还有数据源中的所有数据库?如何遍历?
- 请教: checkedListBox 多选取值的问题!!
- 各位大哥大姐们,我是初学.net,想找其他方面的比较好用的控件!
- 如何用C#把int型的多个二维数组存储在文本文件里
然后BinaryRead出来是 25105 "我", 可是 CE D2 正过来是52946否,反过来是否53966 ,这个25105 是怎么来的? 我怎么知道CE D2 是一个汉字而不是两个单独的字符 CE 和D2呢?求教,谢谢!
Stream fread = new FileStream(@"c:\Q.txt", FileMode.Open); short b = -1; //用来接收读出的字节
byte[] chinese = new byte[2]; //byte数组大小根据编码格式定 while ((b = (byte)fread.ReadByte()) != -1)
{
if (b <= 128)
sb.Append((char)b);
else
{
chinese[0] = (byte)b;
chinese[1] = (byte)fread.ReadByte();
sb.Append(BitConverter.ToChar(chinese, 0));
}
}
这样写运行速度快还节省内存,你试试吧