.net 0801笔记_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > .net 0801笔记

.net 0801笔记

 2013/8/2 3:09:02  祥龙福虎dx  博客园  我要评论(0)
  • 摘要:1.文件流使用FileStream读文件staticvoidMain(string[]args){using(FileStreamfsRead=newFileStream("1.txt",FileMode.Open,FileAccess.Read))//使用using对实现IDisposable接口的类进行资源的释放{byte[]bytes=newbyte[fsRead.Length];fsRead.Read(bytes,0,bytes.Length);stringstr=System
  • 标签:笔记 .net net

1.文件流

使用FileStream读文件

static void Main(string[] args)
        {
            using (FileStream fsRead=new FileStream("1.txt", FileMode.Open, FileAccess.Read))//使用using对实现IDisposable接口的类进行资源的释放
            {
                byte[]bytes=new byte[fsRead.Length];
                fsRead.Read(bytes, 0, bytes.Length);
                string str = System.Text.Encoding.Default.GetString(bytes);
                Console.WriteLine(str);
            }
            Console.ReadKey();
        }

使用FileStream写文件

using (FileStream fsWrite = new FileStream("1.txt", FileMode.OpenOrCreate, FileAccess.Write))
            {
                 string str="哈哈";
            byte[]bytes=System.Text.Encoding.UTF8.GetBytes(str);
            fsWrite.Write(bytes, 0, bytes.Length);
            }
            Console.WriteLine("写入成功了");
            Console.ReadKey();

StreamReader与StreamWriter简化了文本类型的流的读取,ReadToEnd用于从当前位置一直读到最后,内容大的话会占内存;ReadLine读取一行,如果到了末尾,则返回null

2对象序列化与反序列化

对象序列化是将对象(比如Person对象)转换为二进制数据(字节流),反序列化是将二进制数据还原为对象。对象序列化,只能针对对象的字段进行序列化。在类声明上添加[Serializable],对象的属性、字段的类型也必须可序列化

为什么要用序列化:将一个复杂的对象转换流,方便我们的存储与信息交换。

序列化代码:

class Program
    {
        static void Main(string[] args)
        {
            Person per = new Person();
            per.Name = "张三";
            per.Age = 18;
            per.Gender = '';
                 //第一步 创建序列化器
            BinaryFormatter bf = new BinaryFormatter();
                //第二步:创建流
            using (FileStream fs = new FileStream("1.txt", FileMode.Create, FileAccess.Write))
            {
                //第三步:序列化
                bf.Serialize(fs, per);
            }
            Console.WriteLine("成功了");
            Console.ReadKey();
            
        }
    }

      [Serializable]//这个类可以被序列化了
   public  class Person
    {
          private string _name
           public string Name
        {
            get{ return _name; }
            set { _name = value; }
        }
        private char _gender;
        public char Gender
        {
            get { return _gender; }
            set { _gender = value; }
        }
        private int _age;
        public int Age
        {
            get { return _age; }
            set { _age = value; }
        }
      
    }

反序列化代码:

static void Main(string[] args)
        {
          //反序列化
            //对象变 数据  数据变对象
               //第一步 创建序列化器
            BinaryFormatter bf = new BinaryFormatter();
            //第二步:创建流
            using (FileStream fs = new FileStream("11.txt", FileMode.Open, FileAccess.Read))
            {
                //第三步:反序列化
               Object obj=  bf.Deserialize(fs);
               Person pe = obj as Person;
               Console.WriteLine(pe.Age);
            }
            Console.ReadKey();
        }


3.正则表达式初探

元字符+++++++++++++++++++++++

.匹配出\n的任意一个字符

[a-z]a到z的任意一个字符

|或 优先级别最低

()改变优先级别

{n}匹配n次到多次

{n,}匹配至少n次

{n,m}匹配n到m次

*匹配0次或多次

+匹配1次或多次

?匹配0次或1次

^匹配一行的开始  另外一种意思:非[^0-9]

$匹配一行的结束

简单表达式++++++++++++++++++++

\s匹配所有空白字符

\S匹配所有非空白字符

\w匹配[0-9a-zA-Z_]和汉字

\W匹配除以上所有字符

\d代表一个数字[0-9]

\D 代表一个非数字[^0-9]

\b单词的边界

.Net中的正则表达式

•常用的3种情况:(C#语法) –判断是否匹配:Regex.IsMatch(“字符串”,”正则表达式”); –字符串提取:Regex.Match(“字符串”,“要提取的字符串的正则表达式”);//只能提取一个(提取一次) –字符串提取(循环提取所有): Regex.Matches(),(可以提取所有匹配的字符串。) –字符串替换:Regex.Replace(“字符串”,”正则”,”替换内容”); –Regex.Split();
发表评论
用户名: 匿名