using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Collections;
using System.IO;
using System.Text;
using System.Windows.Forms;
namespace test2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private string curFileName;
        private System.Drawing.Bitmap curBitmap;
        private void Form1_Load(object sender, EventArgs e)
        {        }
        private void open_Click_1(object sender, EventArgs e)
        {        }
       
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog opnDlg = new OpenFileDialog();
            opnDlg.Filter = "*.jpg|*.jpg";
            opnDlg.Title = "打开图像文件";
            opnDlg.ShowHelp = true;
            if (opnDlg.ShowDialog() == DialogResult.OK)
            {
                curFileName = opnDlg.FileName;
                try
                {
                    curBitmap = (Bitmap)Image.FromFile(opnDlg.FileName);                   
                }
                catch (Exception exp)
                {
                    MessageBox.Show(exp.Message);
                }
            }
            Invalidate();
        }
        
        private void Form1_Load_1(object sender, EventArgs e)
        {        }
       
       private void button2_Click(object sender, EventArgs e)
        {
            if (curBitmap == null)
                return;
                SaveFileDialog saveDlg = new SaveFileDialog();
                saveDlg.Title = "保存为";
                saveDlg.OverwritePrompt = true;
                saveDlg.Filter = "*.jpg|*.jpg";
                saveDlg.ShowHelp = true;
                if (saveDlg.ShowDialog() == DialogResult.OK)
                {
                   string  fileName = saveDlg.FileName;
                    string strFilExten = fileName.Remove(0, fileName.Length - 3);
                    switch (strFilExten)
                    {
                        case "bmp":
                            curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Bmp);
                            break;
                        case "jpg":
                            curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
                            break;
                        case "gif":
                            curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Gif);
                            break;
                        case "tif":
                            curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Tiff);
                            break;
                        case "png":
                            curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Png);
                            break;
                        default:
                            break;
                    }
                }
            }       private void button3_Click(object sender, EventArgs e)
       {
           this.Close();
       }       private void Form1_Paint_1(object sender, PaintEventArgs e)
       {
           Graphics g = e.Graphics;
           if (curBitmap != null)
           {
               g.DrawImage(curBitmap, 160, 20,180, 180);
           }
       }       private void button4_Click(object sender, EventArgs e)
       {
           byte[] arrFile = null; //先定义一个byte数组
                                //将指定的文件数据读取到 数组中
           using (FileStream fs = new FileStream("", FileMode.Open)) //path是文件的路径
           {
               arrFile = new byte[fs.Length];//定义这个byte[]数组的长度 为文件的length
               fs.Read(arrFile, 0, arrFile.Length);//把fs文件读入到arrFile数组中,0是指偏移量,从0开始读,arrFile.length是指需要读的长度,也就是整个文件的长度
               textBox1.Text = arrFile[10].ToString ();//测试用...
               string file = "E:\a.txt";
               StreamWriter wr = new StreamWriter(new FileStream(file, FileMode.Append));
               for (int k = 0; k < arrFile.Length; k++)
               {
                   wr.WriteLine(Convert.ToString(arrFile[k]));
               }
               //StreamWriter sw = new StreamWriter("F:/2.txt", Encoding.Default);
               //int k = arrFile.Length;
               //int i;
               //for (int i = 0; i < k; i++)
               //{
               //    sw = Convert.ToString(arrFile[i]);
               //}
           }       }
    }
}

解决方案 »

  1.   

     private void button4_Click(object sender, EventArgs e)
      {
      byte[] arrFile = null; //先定义一个byte数组
      //将指定的文件数据读取到 数组中
      using (FileStream fs = new FileStream("", FileMode.Open)) //path是文件的路径
      {
      arrFile = new byte[fs.Length];//定义这个byte[]数组的长度 为文件的length
      fs.Read(arrFile, 0, arrFile.Length);//把fs文件读入到arrFile数组中,0是指偏移量,从0开始读,arrFile.length是指需要读的长度,也就是整个文件的长度
      textBox1.Text = arrFile[10].ToString ();//测试用...
      string file = "E:\a.txt";
      StreamWriter wr = new StreamWriter(new FileStream(file, FileMode.Append));
      for (int k = 0; k < arrFile.Length; k++)
      {
      wr.WriteLine(Convert.ToString(arrFile[k]));
      }
      //StreamWriter sw = new StreamWriter("F:/2.txt", Encoding.Default);
      //int k = arrFile.Length;
      //int i;
      //for (int i = 0; i < k; i++)
      //{
      // sw = Convert.ToString(arrFile[i]);
      //}sw.close();//------------------------------------加上这一句试一下
      }  }
      }
    }
      

  2.   

       FileStream fileStream = new FileStream(@"c:\a.png", FileMode.Open);
            int state = 0;
            bool beginFlag = true;
            long beginPosition = -1, endPosition = -1;
            for (int value = fileStream.ReadByte(); value > -1; value = fileStream.ReadByte())
            {
               
               
            }
            if (state == 100)
            {
                byte[] bytes = new byte[endPosition - beginPosition + 1];
                fileStream.Position = beginPosition;
                fileStream.Read(bytes, 0, bytes.Length);
                File.WriteAllBytes(@"c:\a.png", bytes);
            }
            
            fileStream.Close();
      

  3.   


    for (int k = 0; k < arrFile.Length; k++)
      {
      wr.WriteLine(Convert.ToString(arrFile[k]));
      }
    //这段效率很差,K每次增加1