小台的IT备忘录  
脑子越来越不好用,只能依靠烂笔头了~
string path = "D:\\AccountChecking\\Test.txt";
string content = "abcdefg\r\nhigklmn\r\nopqrst";

//操作文件夹对象,无则创建文件夹,可以一次创建多级
Directory.CreateDirectory("D:\\AccountChecking\\");

#region File-对于文件的典型操作,如复制、移动、重命名、创建、打开、删除和一次将追加到单个文件的类

//写文件
File.WriteAllText(path, content, Encoding.Default);
File.WriteAllLines(path, content.Split('r'), Encoding.Default);
File.WriteAllBytes(path, Encoding.Default.GetBytes(content));
//追加内容
File.AppendAllText(path, content, Encoding.Default);
//读文件
string content_t = File.ReadAllText(path, Encoding.Default);
string[] content_s = File.ReadAllLines(path, Encoding.Default);
byte[] content_b = File.ReadAllBytes(path);

#endregion

#region FileStream-以流的形式对文件系统上的文件进行读取、写入、打开和关闭操作,既支持同步读写操作,也支持异步读写操作

//写文件
using (FileStream fileStream = new FileStream(path, FileMode.Create))
{
    byte[] data = Encoding.Default.GetBytes(content);
    fileStream.Write(data, 0, data.Length);//将内容写入缓冲区
    //Flush()将缓冲区内容写入文件系统,后续无操作的话,在关闭或出using时会自动写入文件系统
    //fileStream.Flush();
    //使用using就不必显示的关闭流,它会自动关闭并释放
    //fileStream.Close();
}
//追加内容
using (FileStream fileStream = new FileStream(path, FileMode.Append))
{
    byte[] data = Encoding.Default.GetBytes(content);
    fileStream.Write(data, 0, data.Length);
}
//读文件
using (FileStream fileStream = new FileStream(path, FileMode.Open))
{
    byte[] data = new byte[fileStream.Length];
    fileStream.Read(data, 0, data.Length);
    string result = Encoding.Default.GetString(data);
    //do something...
}

#endregion

#region StreamWriter&StreamReader-StreamReader实现了抽象基类TextReader类,而StreamWriter实现了抽象基类TextWriter,分别用于对流的读取与写入

//写文件
using (StreamWriter streamWriter = new StreamWriter(path))
{
    //方法一
    streamWriter.Write(content);
    streamWriter.Flush();//将缓冲区内容写入磁盘
    //使用using就不必显示的关闭流,它会自动关闭并释放
    //streamWriter.Close();
    //方法二
    streamWriter.WriteLine(content.ToCharArray());//按行写入
    //streamWriter.Flush();
}
//追加内容
using (StreamWriter streamWriter = new StreamWriter(path, true))
{
    //方法一
    streamWriter.Write(content);
    streamWriter.Flush();
    //方法二
    streamWriter.WriteLine(content.ToCharArray());//按行追加
}
//读文件(StreamReader类似指针位移的操作,所以实例化多个对象)
using (StreamReader streamReader_ToLine = new StreamReader(path))
using (StreamReader streamReader_ToEnd = new StreamReader(path))
using (StreamReader streamReader_To = new StreamReader(path))
{
    string msg = String.Empty;
    //方法一
    while (!streamReader_ToLine.EndOfStream)
    {
        msg = streamReader_ToLine.ReadLine();
        //do something...
    }
    //方法二
    if (!streamReader_ToEnd.EndOfStream)
    {
        msg = streamReader_ToEnd.ReadToEnd();
        //do something...
    }
    //方法三
    char[] data = new char[streamReader_To.BaseStream.Length];
    streamReader_To.Read(data, 0, data.Length);
    string result = new String(data);
    //do something...
}

#endregion

 

posted on 2016-08-11 11:37  taiyonghai  阅读(1503)  评论(0编辑  收藏  举报