FileStream s = new FileStream("FileName.txt",FileMode.Create,FileAccess.Write);
s.Write(k,0,10000);
s.Close();

解决方案 »

  1.   

    FileStream fs = new FileStream ( "C\\file.txt"  , FileMode.OpenOrCreate , FileAccess.Write ) ;
    StreamWriter m_streamWriter = new StreamWriter ( fs ) ;
    m_streamWriter.Flush ( ) ;
    m_streamWriter.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ;
    m_streamWriter.Write (k) ;
    m_streamWriter.Flush ( ) ;
    m_streamWriter.Close ( ) ;
      

  2.   

    int sz;
    byte[] k=new byte[sz];
    if (openFileDialog1.ShowDialog()==DialogResult.OK)


        FileStream s=new FileStream(openFileDialog1.FileName,FileMode.OpenOrCreate,FileAccess.Read);
    sz=s.Length;
    s.Read(k,0,sz);
        s.Close();
    FileStream x=new FileStream("c:\\1.jpg",FileMode.Create,FileAccess.Write);
    x.Write(k,0,sz);
    x.Close();
    }
    我想取得大小来定义缓冲区大小。错误了,
      

  3.   

    为什么非要通过文件流保存为另一个文件呢,通过File.Copy方法复制然后改名不可以吗,就算在同一个目录下也没关系啊,如果复制到另一个目录下那根本就不用改名了。还有你那10000就一定好使吗,如果文件很大呢,岂不是文件数据丢失?
      

  4.   

    FileStream s = new FileStream(path,FileMode.Create,FileAccess.Write);
    s.Write(k,0,10000);
    s.Close();
    因该没问题吧
      

  5.   

    using System;
    using System.IO;
    namespace csdn
    {
    class Class1
    {
    [STAThread]
    static void Main(string[] args)
    {
    int sz;
    FileStream s=new FileStream(@"劳斯来斯2.jpg",FileMode.OpenOrCreate,FileAccess.Read);
    sz=Convert.ToInt32(s.Length);
    byte[] k=new byte[sz];
    s.Read(k,0,sz);
    s.Close();
    FileStream x=new FileStream(@"f:\1.jpg",FileMode.Create,FileAccess.Write);
    x.Write(k,0,sz);
    x.Close();
    }
    }
    }
      

  6.   

    楼主的问题是:
    1.s.Length是长整行要转换;
    2.byte[] k=new byte[sz]应该写在sz=Convert.ToInt32(s.Length);后面如果写在前面sz没有初始化
      

  7.   

    to  dazhu2(边城浪子(倚天不出,谁与争锋))
    如果buffer byte[]的大小不恰当的话
    复制后的文件一般比原文件要大几个byte
    原因就是 原文件的大小不一定 是 10000 的证书倍
    在最后一次read时 buffer byte[10000] 并没有被填满还有byte[]的大小 最好为2^n 如 1024 512 128