最好在实例化fsr后来一句 fsr.Seek(0, SeekOrigin.Begin);如果文件指针位置不对, 会乱写一通另: write语句之后, 最好来一个 fsr.Flush();写设备

解决方案 »

  1.   

    文本读写参照如下代码
    using System.IO;
    //
    try
    {string strLine="";
    string id="";//卡号
    bool ok=false;//用户是否按了OK
    bool complete=true;//刷卡是否完毕
    string[]strArray;
    char[]charArray=new char[]{','};
    FileStream aFile=new FileStream("tempid.txt",FileMode.Open);
    StreamReader sr=new StreamReader(aFile);
    strLine=sr.ReadLine();
    if(strLine!=null)
    {
    strArray=strLine.Split(charArray);
    complete=bool.Parse(strArray[2].Trim());
    if(complete)//刷卡完毕
    {ok=bool.Parse(strArray[1].Trim());
    if(ok)//用户按下OK
    {id=strArray[0].Trim();
    if(id!="000")
    textBoxIDNumber.Text=id;
    }timerCheck.Enabled=false;
    }
    }
    sr.Close();
    }
    catch
    {
    //没有文件
    ;}
      

  2.   

    to panyee(快乐王子): 
    我按照你的说法试过了,好象还是一样。to  snof(雪狼):
    估计你对文件的读写还不是很熟悉
      

  3.   

    interestingFileStream FileStr=new FileStream("F:a.doc",System.IO.FileMode.Open); 
    byte[] by1=new byte[System.Convert.ToInt32(FileStr.Length)]; 
    FileStr.Read(by1,0,by1.Length); 
    FileStr.Close();string s = System.Text.Encoding.Default.GetString(by1,0,by1.Length);
    byte[] by2 = System.Text.Encoding.Default.GetBytes(s);Console.WriteLine("same length?{0}",by1.Length == by2.Length);
    for (int i=0; i < by1.Length; i++)
     if (by1[i] != by2[i])
          Console.WriteLine("different:{0},{1}", by1[i], by2[i]);   

    FileStream fsr=new FileStream("G:b.doc",System.IO.FileMode.Create);
    fsr.Write(by2,0,by2.Length);
    fsr.Close();
      

  4.   

    by the way, trySystem.Text.Encoding.GetEncoding("GB2312")
      

  5.   

    to saucer(思归, MS .NET MVP):
    还是不行。
    在调试时,就知道by1.Length和by2.Length不一样,但不知道为什么。