Yes, you do it in chunks at a time instead of byte by byte:
FileStream f = new FileStream(@"c:\verdana.ttf", FileMode.Create);
Stream s = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("WindowsApplication7.verdana.ttf");
byte[] b = new byte[4096];
int i;
while (true)
{
i = s.Read(b, 0, 4096);
if (i == 0) break;
f.Write(b, 0, i);
}
f.Close();