试一下用Read(bytes[], int ,int)方法,将读出的bytes再转为string.System.Text.Encoding.Default.GetString(byte[]) 来转换byte[]为string

解决方案 »

  1.   

    那原来的readstring 是怎么用的呢
      

  2.   

    可能是只有碰到不同类型的数据时才会中止读取
    如写入时这样:
    BinaryWriter bw;
    FileStream fs;
    fs = new FileStream("dd.txt",FileMode.Create);
    bw = new binaryWriter(fs);string s="sss";
    char c ='c';bw.write(s)
    bw.write(c)fs.close
    再用binaryReader.ReadString()和ReadChar()时则可分开否则对于String类型为何不用SteamReader或StringReader?
      

  3.   

    读:
    numP=0;
    FileStream fsm=new FileStream("friend\\friend.text",FileMode.Open);
    BinaryReader pr=new BinaryReader(fsm);
    try
    {
    while(true)
    {
    a[numP]=pr.ReadString();//srd.ReadLine();
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~可以读这一举他就把整个文件给读掉了     t=pr.readint32();
    b[numP]=pr.ReadString();
             t=pr.readint32();
    numP++;
    }
    }
    catch{}
    写:
    private void SavePerson()
    {
    FileStream fsm=new FileStream("friend\\friend.text",FileMode.OpenOrCreate);
    BinaryWriter pr=new BinaryWriter(fsm);
    for(int i=0;i<numP;i++)
    {     pr.Write(a[i]);
         pr.Write(1);
         pr.Write(b[i]);
         pr.write(1);

    }
    pr.Close();
    fsm.Close();
    }
    }
    这样也没用的