FileStream cfs = new FileStream(mpath, FileMode.Open, FileAccess.Read);
            BinaryReader cr = new BinaryReader(cfs, Encoding.GetEncoding("gb2312"));            int PPP = 0;            int Num_all = 0;            //6768个汉字
            for (int i = 0; i < 6768; i++)
            {                string WordCN = GetWordCN(i);                //得到了本组词条个数
                byte[] m1 = cr.ReadBytes(4);
                PPP = PPP + 4;
                
                int G_1 =Math.Abs( GetIntIt(m1));//FileStream cfs = new FileStream(mpath, FileMode.Open, FileAccess.Read);
            BinaryReader cr = new BinaryReader(cfs, Encoding.GetEncoding("gb2312"));            int PPP = 0;            int Num_all = 0;            //6768个汉字
            for (int i = 0; i < 6768; i++)
            {                string WordCN = GetWordCN(i);                //得到了本组词条个数
                byte[] m1 = cr.ReadBytes(4);
                PPP = PPP + 4;
                
                int G_1 =Math.Abs( GetIntIt(m1));//这里错误,说System.OutOfMemoryException
}

解决方案 »

  1.   

    GetWordCN、GetIntIt,这两个方法不知道是什么,既然在GetIntIt处内存溢出,那就设断点进入看看哪句出错了…………ps: 既然LZ是要读取字节,,那直接用FileStream字节流就好,凡是带Encoding的都是字符流,这里用字符流没有意义了啊……
      

  2.   

    FileStream cfs = new FileStream(mpath, FileMode.Open, FileAccess.Read);
                BinaryReader cr = new BinaryReader(cfs, Encoding.GetEncoding("gb2312"));            int PPP = 0;            int Num_all = 0;            //6768个汉字
                for (int i = 0; i < 6768; i++)
                {                string WordCN = GetWordCN(i);                //得到了本组词条个数
                    byte[] m1 = cr.ReadBytes(4);
                    PPP = PPP + 4;
                    
                    int G_1 =Math.Abs( GetIntIt(m1));//FileStream cfs = new FileStream(mpath, FileMode.Open, FileAccess.Read);
                BinaryReader cr = new BinaryReader(cfs, Encoding.GetEncoding("gb2312"));            int PPP = 0;            int Num_all = 0;            //6768个汉字
                for (int i = 0; i < 6768; i++)
                {                string WordCN = GetWordCN(i);                //得到了本组词条个数
                    byte[] m1 = cr.ReadBytes(4);
                    PPP = PPP + 4;
                    
                    int G_1 =GetIntIt(m1);                ArrayList newOneIt = new ArrayList(G_1);//这里错误,说System.OutOfMemoryException
    之前复制错了.这个为出错的程序
      

  3.   

    我试了下负数的时候会出现ArgumentOutOfRangeException,,
    参数过大的时候就会出现OutOfMemoryException,和具体机子内存有关,我试验到999999999的时候异常了