class Program { /// <summary> /// 使用fileStream对文件进行读 /// </summary> static char[] FileStreamReadMeathod() { //-------FileStream对文件的读 /* 因为FileStream主要用于读取字节和字节数组,也就是二进制数据,所以它不能指定编码格式, 但是如果我们用它来读取有中文的文本的话,我们就会发现它会乱码,因为默认的编码是UTF8, 所以我们必须用System.Text.Encoding.GetEncoding("GB2312").GetChars()进行转码, 这样很麻烦,所以我们通常不用FileStream读写有中文的文本。*/ byte[] byData = new byte[100]; char[] charData = new char[1024]; FileStream file = new FileStream("test.txt", FileMode.Open); file.Seek(1, SeekOrigin.Begin);//指定从流的什么地方开始读 file.Read(byData, 0, 100);//读取几个字符 Decoder d = Encoding.Default.GetDecoder(); d.GetChars(byData, 0, byData.Length, charData, 0); //Console.WriteLine(charData); file.Close(); return charData; } /// <summary> /// 使用Filestream进行写入文件 /// </summary> /// <param name="dataStr">要写入文件的内容</param> static void FileStreamWriteMeathod(string dataStr) { FileStream fs = new FileStream("t1.txt",FileMode.Create); byte[] data = System.Text.Encoding.Default.GetBytes(dataStr); fs.Write(data,0,data.Length); //清空缓存区,关闭流 fs.Flush(); fs.Close(); } /// <summary> /// 使用StreamReader对文件进行读 /// </summary> static string StreamReaderMethod() { StreamReader sr = new StreamReader("test.txt", Encoding.UTF8); string allText = sr.ReadToEnd();//全部读完 return allText; //下面是一行一行的读直到全部读完 /* string line; while ((line = sr.ReadLine()) != null) { Console.WriteLine(line); }*/ /***************************************************** //初始化StreamReader类有很多种方式。下面我罗列出几种 StreamReader sr1 = new StreamReader(@"c:\temp\utf-8.txt"); // 同样也可以指定编码方式 StreamReader sr2 = new StreamReader(@"c:\temp\utf-8.txt", Encoding.UTF8); FileStream fs = new FileStream(@"C:\temp\utf-8.txt", FileMode.Open, FileAccess.Read, FileShare.None); StreamReader sr3 = new StreamReader(fs); StreamReader sr4 = new StreamReader(fs, Encoding.UTF8); FileInfo myFile = new FileInfo(@"C:\temp\utf-8.txt"); // OpenText 创建一个UTF-8 编码的StreamReader对象 StreamReader sr5 = myFile.OpenText(); // OpenText 创建一个UTF-8 编码的StreamReader对象 StreamReader sr6 = File.OpenText(@"C:\temp\utf-8.txt"); *******************************************************/ } /// <summary> /// 使用FileStream类创建文件,使用StreamWriter类,将数据写入到文件。 /// </summary> /// <param name="data"></param> static void StreamWriterTest(string data) { FileStream fs = new FileStream("t2.txt",FileMode.Create); StreamWriter sw = new StreamWriter(fs); sw.Write(data); sw.Flush(); sw.Close(); /***************************************** * 初始化StreamWriter类同样有很多方式: // 如果文件不存在,创建文件; 如果存在,覆盖文件 StreamWriter sw1 = new StreamWriter(@"c:\temp\utf-8.txt"); // 也可以指定编码方式 // true 是 append text, false 为覆盖原文件 StreamWriter sw2 = new StreamWriter(@"c:\temp\utf-8.txt", true, Encoding.UTF8); // FileMode.CreateNew: 如果文件不存在,创建文件;如果文件已经存在,抛出异常 FileStream fs = new FileStream(@"C:\temp\utf-8.txt", FileMode.CreateNew, FileAccess.Write, FileShare.Read); // UTF-8 为默认编码 StreamWriter sw3 = new StreamWriter(fs); StreamWriter sw4 = new StreamWriter(fs, Encoding.UTF8); // 如果文件不存在,创建文件; 如果存在,覆盖文件 FileInfo myFile = new FileInfo(@"C:\temp\utf-8.txt"); StreamWriter sw5 = myFile.CreateText(); ****************************************/ } }
c#文件读写
猜你喜欢
转载自blog.csdn.net/qwsx789/article/details/50961177
周排行