读写文本文件

发布时间 2023-10-24 13:12:55作者: jnmcok
#region 读取文件(内容不多时,一次将文本内容全部读完)
string str1 = System.IO.File.ReadAllText(@"c:\temp\ascii.txt");//返回一个包含全部文本内容的字符串
string str2 = System.IO.File.ReadAllText(@"c:\temp\ascii.txt", Encoding.ASCII);//返回一个包含全部文本内容的字符串
string[] strs = System.IO.File.ReadAllLines(@"c:\temp\ascii.txt"); //返回一个字符串数组,每一行都是一个数组元素
string[] strs2 = System.IO.File.ReadAllLines(@"c:\temp\ascii.txt", Encoding.ASCII);//返回一个字符串数组,每一行都是一个数组元素
#endregion

#region 读取文件(内容较多时)
static StreamReader sr1 = new StreamReader(@"c:\temp\utf-8.txt"); //1.使用StreamReader(FilePath)
static StreamReader sr2 = new StreamReader(@"c:\temp\utf-8.txt", Encoding.UTF8);//2.使用StreamReader(FilePath, Encoding),并指定编码方式 

static FileStream myfs = new FileStream(@"C:\temp\utf-8.txt", FileMode.Open, FileAccess.Read, FileShare.None); //初始化FileStream
static StreamReader sr3 = new StreamReader(myfs); //3.使用StreamReader(FileStream)
static StreamReader sr4 = new StreamReader(myfs, Encoding.UTF8);//4.使用StreamReader(FileStream, Encoding)指定编码方式,并指定编码方式 

static FileInfo myFile = new FileInfo(@"C:\temp\utf-8.txt"); //初始化FileInfo
StreamReader sr5 = myFile.OpenText();//5.使用File.OpenText(FilePath)
StreamReader sr6 = System.IO.File.OpenText(@"C:\temp\utf-8.txt");//6.使用FileInfo.OpenText()
//通过上面的代码初始化了一个StreamReader,然后可以每次读一行,也可以每次读一个字符 ,还可以每次读几个字符,甚至也可以一次将所有内容读完
#endregion


#region 以文本流的方式读取文本文件
public string ReadTxt(string txtFile)
{
    using (StreamReader reader = new StreamReader(txtFile))
    {
        int nextChar = reader.Read();// 读一个字符 
        int nCharsRead = reader.Read(new char[100], 0, 100);//读100个字符
        string nextLine = reader.ReadLine();// 读一行 
        return reader.ReadToEnd();//全部读完 
    }
}
#endregion

#region 以文本流的方式写入文本文件
public void WriteTxt(string txtFile, string content)
{
    using (FileStream fs = new FileStream(txtFile, FileMode.Create))
    {
        using (StreamWriter writer = new StreamWriter(fs))
        {
            writer.Write(content);
        }
    }
}
#endregion