日期:2014-05-19  浏览次数:21034 次

System.IO.BinaryWriter.Write的问题
帮我修改一下下面这个程序,我改了好几次还是出现了不少错误:
__________________________________________________________________________
D:\临时文件\C#\else> csc   2.cs
Microsoft   (R)   Visual   C#   2005   编译器   版本   8.00.50727.42
用于   Microsoft   (R)   Windows   (R)   2005   Framework   版本   2.0.50727
版权所有   (C)   Microsoft   Corporation   2001-2005。保留所有权利。

2.cs(14,4):   error   CS1502:   与“System.IO.BinaryWriter.Write(byte[],   int,
                int)”最匹配的重载方法具有一些无效参数
2.cs(14,13):   error   CS1503:   参数“1”:   无法从“char”转换为“byte[]”
--------------------------------------
小妹第一次在此发贴求助,高后帮我一下,谢谢了!!


using   System;
using   System.IO;

class   Text

{
public   static   void   Main()
{
string   c= "abcde ";  

FileStream   fs1=new   FileStream( "D:\\临时文件\\C#\\else\\abc.txt ",FileMode.Create);
      BinaryWriter   bw=new   BinaryWriter(fs1);
      bw.Write( 'c ',0,c.Length);  

bw.Close();  

fs1.Close();  
}
}

------解决方案--------------------
bw.Write( 'c ',0,c.Length);
拜托,这个不是将c这个string写入,而只是写入 'c '这个字符。

写入字符串用不着BinaryWriter, 用StreamWriter 简单多了。

不过一定要用BinaryWriter也可以,先要把string转换成byte[]。
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
bw.Write( encoding.GetBytes( c ) ,0, c.Length ); //encoding.GetBytes将c转成了byte[].
------解决方案--------------------
楼主小妹真是牛,是不是用记事本加CSC直接写程序啊,Orz一下。
BinaryWriter只能向流中写入二进制数据,说白了,就是传入参数是byte[]。如果要与入文本,就应该用StreamWriter。如果一定要用BinaryWriter,那可以用BitConverter或Encoding把数值或文本转换为byte[]再写入。