C# 常用流小记

现在先写一点,接下来继续补全;重点内容
1.FileStream 继承Stream –字节流

    Filestream四个参数:

     - 文件名; 
     - FileMode :枚举定义了各种打开文件的方法; 
     - FileAccess :枚举的成员有:Read、ReadWrite 和Write;
     - FileShare:共享权限。
public void UseFileStream()
        {
            #region filestream
            //创建文件流filestream--字节流
            //文件绝对路径C:\Users\acer1\Documents\Visual Studio 2010\Projects\IOstream\IOstream\bin\Debug\FileStream.txt
            FileStream f = new FileStream("FileStream.txt",
                FileMode.Create, FileAccess.ReadWrite, FileShare.None);

            //写数据进文件
            const string words = "this is that i want to write:";
            byte[] b = Encoding.Default.GetBytes(words.ToArray());
            byte[] temp = new byte[b.Count()];
            f.Write(b, 0, b.Count());
            for (int i = 0; i < 18; i++)
            {
                f.WriteByte((byte)i);
            }
            //把指针移回起点
            f.Position = 0;
            f.Read(temp, 0, b.Count());
            //string 和byte[]互转--Encoding.Default.GetString/GetByte
            string rewords = Encoding.Default.GetString(temp);
            Console.WriteLine(rewords);
            for (int i = 0; i < 18; i++)
            {
                Console.WriteLine(f.ReadByte());
            }
            f.Close();
            #endregion
        }

2.字符流StreamWriter和StreamReader –比较简单

public void UseCharStream2()
        {
            #region 字符流StreamWriter和StreamReader
            string[] names = new string[] { "Zara Ali", "Nuha Ali" };
            using (StreamWriter sw = new StreamWriter("names.txt"))
            {
                foreach (string s in names)
                {
                    sw.WriteLine(s);

                }
            }

            // 从文件中读取并显示每行
            string line = "";
            using (StreamReader sr = new StreamReader("names.txt"))
            {
                while ((line = sr.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
            #endregion
        }

3. 二进制文件读写流

public void UseBinaryStream()
        {
            #region 二进制文件读写流BinaryReader和BinaryWriter

            BinaryReader br;
            BinaryWriter bw;
            byte b1 = 66;
            int i1 = 77;
            char c1 = 'a';
            double d1 = 13123.1;
            bool b2 = true;
            string s1 = "luyang";

            //创建文件
            try
            {
                bw = new BinaryWriter(new FileStream("data", FileMode.Create, FileAccess.ReadWrite));
            }
            catch (IOException e)
            {
                Console.WriteLine(e.Message + "\n Cannot create file.");
                return;
            }
            //数据写进文件
            try
            {
                bw.Write(b1);
                bw.Write(i1);
                bw.Write(c1);
                bw.Write(d1);
                bw.Write(b2);
                bw.Write(s1);
            }
            catch (IOException e)
            {
                Console.WriteLine(e.Message + "\n Cannot write to file.");
                return;
            }
            bw.Close();

            // 读取文件
            try
            {
                br = new BinaryReader(new FileStream("data",
                FileMode.Open));
            }
            catch (IOException e)
            {
                Console.WriteLine(e.Message + "\n Cannot open file.");
                return;
            }
            try
            {
                b1 = br.ReadByte();
                Console.WriteLine("Byte data: {0}", b1);
                i1 = br.ReadInt32();
                Console.WriteLine("Char data: {0}", i1);
                c1 = br.ReadChar();
                Console.WriteLine("Integer data: {0}", c1);
                d1 = br.ReadDouble();
                Console.WriteLine("Double data: {0}", d1);
                b2 = br.ReadBoolean();
                Console.WriteLine("Boolean data: {0}", b2);
                s1 = br.ReadString();
                Console.WriteLine("String data: {0}", s1);
            }
            catch (IOException e)
            {
                Console.WriteLine(e.Message + "\n Cannot read from file.");
                return;
            }
            br.Close();
            #endregion
        }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值