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);
}
转载于:https://www.cnblogs.com/wiewookahn/archive/2012/05/27/2520361.html