读写文本文件-StreamReader和StreamWriter

1.读写文本文件

        我们对文本文件的读写一般使用StreamReader和StreamWriter,因为不同的文本有不同的编码格式,这个StreamReader会帮我们自动处理,所以我们不需要关心文本文件的编码是什么
        1,创建文本的读取流(会检查字节码标记确定编码格式)
          StreamReader sr = newStreamReader(@"c:\xx\ReadMe.txt");
        2,指定编码格式
          StreamReader str = newStreamReader(@"c:\xx\xx.txt",Encoding.UTF8);
          (可取的编码格式 ASCII Unicode UTF7 UTF8 UTF32)
        3,在文件流的基础上创建文本读取流
          FileStream fs = newFileStream(@"c:\xx\xx.txt",FileMode.Open,FileAccess.Read,FileShare.None);
          StreamReader sr = new StreamReader(fs);
        4,通过文件信息创建文本读取流-第二种方式
          FileInfo myFile = newFileInfo(@"c:\xx\xx.txt");
          StreamReader sr = myFile.OpenText();

            流的关闭sr.Close();

1.2.读取文本文件

1,stringnextLine = sr.ReadLine();//读取一行字符串
2,stringrestOfStream = sr.ReadToEnd();//读取流中所有剩余的文本内容
3,intnextChar = sr.Read();//只读取一个字符
4,   int nChars = 100;
  char[] charArray = new char[nChars];

  int nCharsRead = sr.Read(charArray,0,nChars);读取多个字符,第一个参数是要存放的字符数组,第二个参数是从数组的哪一个索引开始放,第三个参数是读取多少个字符 返回值是实际读取的字符的个数

1.3文本写入流StreamWriter-创建

StreamWriter的创建
1,StreamWritersw = new StreamWriter(@"c:\xx\xx.txt");(默认使用UTF-8编码)
2,StreamWritersw = new StreamWriter(@"c:\xx\xx.txt",true,Encoding.ASCII)
  第二个参数表示是否以追加的方式打开,第三个参数是编码方式
3,通过FileStream创建StreamWriter
  FileStream fs = newFileStream(@"c:\xx\xx.txt",FileMode.CreateNew,FileAccess.Write,FileShare.Read);
  StreamWriter sw = new StreamWriter(fs);
4,通过FileInfo创建StreamWriter
  FileInfo myFile = newFileInfo(@"c:\xx\xx.txt");
  StreamWriter sw = myFile.CreateText();

所有流用完之后关闭sw.Close();

1.4文本写入流StreamWriter-写入

1,写入一行字符
  string nextLine = "x xx x x x x";sw.Write(nextLine);
2,写入一个字符
  char nextChar = 'a';
  sw.Write(nextChar);
3,写入字符数组
  char[] charArray = ..;
  sw.Write(charArray);
4,写入字符数组的一部分
  sw.Write(charArray,StartIndex,Length);

  1:要写入的数组 2:开始索引  3写入长度

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _329_使用streamReader和streamWriter读写文本文件
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建文本文件读取流
            StreamReader reader = new StreamReader("TextFile1.txt");

            ///(一)
            //while(true)
            //{
            //    string str = reader.ReadLine();//读取一行字符串
            //    if (str == null) break;
            //    Console.WriteLine(str);
            //}

            ///(二)
            //string str= reader.ReadToEnd();//读取到文件结尾,读取文本中所有字符串
            //Console.WriteLine(str);

            ///(三)
            //while(true)
            //{
            //    int res= reader.Read();//读取一个字符
            //    if(res==-1)
            //    {
            //        break;
            //    }
            //    else
            //    {
            //        Console.Write((char)res);
            //    }

            //}

            //文本文件写入流
            StreamWriter writer = new StreamWriter("textfile2.txt");
            while(true)
            {
                string message = Console.ReadLine();

                if (message == "q")
                    break;
                //writer.Write(message);//写入字符串
                writer.WriteLine(message);//写入一个字符串并换行
            }
            writer.Close();
            
            
            Console.ReadKey();
        }
    }
}


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王大匣

你的鼓励是我创作最大动力,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值