文件编码问题

来源:互联网 发布:统计淘宝消费金额 编辑:程序博客网 时间:2024/05/22 05:30

/// <summary> 2        /// 获得文件编码 3        /// </summary> 4        /// <param name="content">文件流的字节数组</param> 5        /// <returns>字符编码</returns> 6        public static Encoding GetFileEncoding(byte[] content) 7        { 8            if (content.Length > 0) 9            {10                switch (content[0])11                {12                    case 104:13                        return Encoding.Default;14                    case 255:15                        return Encoding.Unicode;16                    case 254:17                        return Encoding.BigEndianUnicode;18                    case 239:19                        return Encoding.UTF8;20                    default:21                        return Encoding.Default;22                }23            }24            return Encoding.Default;25        }

根据文件流读出来的字节.做了简单的文件类型编码判断

/// <summary>        /// 读文件流        /// </summary>        /// <param name="stream">文件流;如:File.OpenRead(fileCurrentPath)</param>        /// <param name="encoding">字符编码;如:Encoding.UTF8</param>        /// <returns>流字符串</returns>        public static string ReadFromStream(FileStream stream, Encoding encoding)        {            byte[] content = new byte[stream.Length];            stream.Read(content, 0, content.Length);            stream.Close();            stream = null;            if (encoding == Encoding.Default)            {                encoding = GetFileEncoding(content);            }            return encoding.GetString(content);        }               public static string ReadFromStream(FileStream stream,out Encoding encoding)        {            byte[] content = new byte[stream.Length];            stream.Read(content, 0, content.Length);            stream.Close();            stream = null;            encoding = GetFileEncoding(content);            return encoding.GetString(content);        }


  /// <summary> 2        /// 写文件流 3        /// </summary> 4        /// <param name="stream">文件流;如:File.OpenWrite(fileCurrentPath)</param> 5        /// <param name="encoding">字符编码;如:Encoding.UTF8</param> 6        /// <param name="Text">要写的字符串</param> 7        /// <returns>bool</returns> 8        public static bool WriteToStream(FileStream stream, Encoding encoding, string Text) 9        {10            try11            {1213                byte[] content = encoding.GetBytes(Text.Replace("\n", "\r\n"));14                stream.SetLength(content.Length);15                stream.Write(content, 0, content.Length);16                stream.Close();17                return true;18            }19            catch20            {21                return false;22            }23        }



文件的读和写

原创粉丝点击