5.26学习笔记

char
    '1'
string
    "1"
    
char ch = (char)"1";
    -> 类型兼容
    -> 范围兼容
    
值类型 不改变值的大小  只是将字符的显示方式发生了变化
char    '1'  49        (int)'1'
int        1     1        (char)i
double    1.1     1.1    

引用类型
string        "1"        字符串本质就是char数组        [1][\0]
string是sealed类,不允许派生

Convert.ToInt32("1234");        

'1'-'0'
'2'-'0'
'3'-'0'
'4'-'0'

1*10^3+2*10^2+3*10^1+4*10^0


========================================================
文件
Path只对字符串进行处理,文件可以不存在

准备一个缓冲区,字节数组
准备一个流
调用Read方法,返回的字节数(如果为0,表示已经读完)

=======================================================
利用FileStream实现简单的文件复制

如果不用using,要记得在读写完毕的时候,reader和writer要close和dispose
        using (FileStream reader = new FileStream(source, FileMode.Open, FileAccess.Read))
            {
                //申请一个字节数组,用来作为缓冲区存放读取的数据
                byte[] myBytes=new byte[1*1024*1024];
                //res 用来记录myBytes数组中通过reader读取到的存放的字节的个数
                int res = 0;
                using (FileStream writer = new FileStream(target, FileMode.Create, FileAccess.Write))
                {
                    //如果res小于0,则说明myBytes已经不存放新的数据了(会有以前的数据,因为没有清空过),reader已经读取完了所有的元素
                    while((res = reader.Read(myBytes,0,myBytes.Length))>0)
                    {
                        //写入数据
                        writer.Write(myBytes, 0, res);
                    }
                }
            }
=======================================================
用StreamReader,要注意编码的问题            
        string str = "";
            using (FileStream file = new FileStream("1.txt", FileMode.Open, FileAccess.Read))
            {
                using (StreamReader reader = new StreamReader(file, Encoding.GetEncoding("gb2312")))
                {
                    str = reader.ReadToEnd();
                }

            }
查看有哪些编码foreach
            StringBuilder builder = new StringBuilder();
            foreach (EncodingInfo item in Encoding.GetEncodings())
            {
                builder.AppendFormat("{0}\t{1}\t{2}\r\n", item.CodePage, item.DisplayName, item.Name);
            }
StreamWriter
            FileStream file = new FileStream(@"G:\Encoding.txt", FileMode.Create, FileAccess.Write);
            StreamWriter writer = new StreamWriter(file);
            }            

posted @ 2012-05-27 17:15  RogerOwen  阅读(143)  评论(0编辑  收藏  举报