FileStream fstream = new FileStream( "FileName",FileMode.Create,FileAccess.Write,FileShare.Read);
BinaryWriter bWriter = new BinaryWriter( fStream );while( receive 4096 byte )
{
    bWriter.Write( 4096 byte );
    bWriter.Flush( )
}bWriter.close()
fStream.Close( );这样写又问题吗?
我们在bWriter.Write(),前后计下了文件当前指针,发现写某一个4096时,文件指针突然回退4096的倍数,然后继续写,有这样的问题么?
谢了

解决方案 »

  1.   

    这样没问题。
    private void CreateFileFromByteAarray(byte[] stream, string fileName)
    {
    try
    {
    FileStream fw = new FileStream(fileName, FileMode.Create, FileAccess.Write);
    fw.Write(stream, 0, stream.Length);
    fw.Close();
    }
    catch(Exception ex)
    {
    MessageBox.Show("生成文件错误!\n" + ex.ToString());
    }
    }
      

  2.   

    while( receive 4096 byte )
    {
        bWriter.Write( 4096 byte );
        bWriter.Flush( )
    }
    为什么要做这个循环呢.没看懂
      

  3.   

    樓主為什麼寫
    while( receive 4096 byte )
    {
        bWriter.Write( 4096 byte );
        bWriter.Flush( )
    }
    代碼 難懂:)
      

  4.   

    没有问题,流会自己维护自己的位指针FileStream fstream = new FileStream( "FileName",FileMode.Create,FileAccess.Write,FileShare.Read);
    BinaryWriter bWriter = new BinaryWriter( fStream );byte[] buffer = new byte[4096];
    int length = fstream.Read(buffer,0,buffer.Length);while(length > 0)
    {
        bWriter.Write(buffer,0,buffer.Length);
        bWriter.Flush()    length = fstream.Read(buffer,0,buffer.Length);
    }bWriter.close()
    fStream.Close();不知道是不是楼主想要的答案 ^-^