C#文件的处理

一个 文件 是一个存储在磁盘中带有指定名称和目录路径的数据集合。当打开文件进行读写时,它变成一个

从根本上说,流是通过通信路径传递的字节序列。有两个主要的流:输入流 和 输出流输入流用于从文件读取数据(读操作),输出流用于向文件写入数据(写操作)。

FileStream 类

System.IO 命名空间中的 FileStream 类有助于文件的读写与关闭。该类派生自抽象类 Stream。

I/O 类 描述
BinaryReader 从二进制流读取原始数据。
BinaryWriter 以二进制格式写入原始数据。
BufferedStream 字节流的临时存储。
Directory 有助于操作目录结构。
DirectoryInfo 用于对目录执行操作。
DriveInfo 提供驱动器的信息。
File 有助于处理文件。
FileInfo 用于对文件执行操作。
FileStream 用于文件中任何位置的读写。
MemoryStream 用于随机访问存储在内存中的数据流。
Path 对路径信息执行操作。
StreamReader 用于从字节流中读取字符。
StreamWriter 用于向一个流中写入字符。
StringReader 用于读取字符串缓冲区。
StringWriter 用于写入字符串缓冲区。

using System;
using System.IO;

namespace FileIOApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            FileStream F = new FileStream("test.dat", 
            FileMode.OpenOrCreate, FileAccess.ReadWrite);

            for (int i = 1; i <= 20; i++)
            {
                F.WriteByte((byte)i);
            }

            F.Position = 0;

            for (int i = 0; i <= 20; i++)
            {
                Console.Write(F.ReadByte() + " ");
            }
            F.Close();
            Console.ReadKey();
        }
    }
}
StreamReader  和  StreamWriter  类用于文本文件的数据读写。这些类从抽象基类 Stream 继承,Stream 支持文件流的字节读写。

StreamReader 类

StreamReader 类继承自抽象基类 TextReader,表示阅读器读取一系列字符。

下表列出了 StreamReader 类中一些常用的方法

序号 方法 & 描述
1 public override void Close()
关闭 StreamReader 对象和基础流,并释放任何与读者相关的系统资源。
2 public override int Peek()
返回下一个可用的字符,但不使用它。
3 public override int Read()
从输入流中读取下一个字符,并把字符位置往前移一个字符。

using System;
using System.IO;

namespace FileApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                // 创建一个 StreamReader 的实例来读取文件 
                // using 语句也能关闭 StreamReader
                using (StreamReader sr = new StreamReader("c:/jamaica.txt"))
                {
                    string line;
                   
                    // 从文件读取并显示行,直到文件的末尾 
                    while ((line = sr.ReadLine()) != null)
                    {
                        Console.WriteLine(line);
                    }
                }
            }
            catch (Exception e)
            {
                // 向用户显示出错消息
                Console.WriteLine("The file could not be read:");
                Console.WriteLine(e.Message);
            }
            Console.ReadKey();
        }
    }
}

StreamWriter 类

StreamWriter 类继承自抽象类 TextWriter,表示编写器写入一系列字符。

序号 方法 & 描述
1 public override void Close()
关闭当前的 StreamWriter 对象和基础流。
2 public override void Flush()
清理当前编写器的所有缓冲区,使得所有缓冲数据写入基础流。
3 public virtual void Write(bool value)
把一个布尔值的文本表示形式写入到文本字符串或流。(继承自 TextWriter。)
4 public override void Write( char value ) 
把一个字符写入到流。
5 public virtual void Write( decimal value ) 
把一个十进制值的文本表示形式写入到文本字符串或流。
6 public virtual void Write( double value ) 
把一个 8 字节浮点值的文本表示形式写入到文本字符串或流。
7 public virtual void Write( int value ) 
把一个 4 字节有符号整数的文本表示形式写入到文本字符串或流。
8 public override void Write( string value ) 
把一个字符串写入到流。
9 public virtual void WriteLine()
把行结束符写入到文本字符串或流。

using System;
using System.IO;

namespace FileApplication
{
    class Program
    {
        static void Main(string[] args)
        {

            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);
                }
            }
            Console.ReadKey();
        }
    }
}




using System;

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

namespace ConsoleApplication3
{


    class Program
    {


        static void Main(string[] args)
        {
            Class1 student = new Class1();


            student.name = "hkl";
            student.number = 90;
            student.sex = "l";
            string std = student.name + " " + Convert.ToString(student.number) + " " + student.sex;
            student.FileWrite(std);




            Class1 student1 = new Class1();


            student1.name = "abc";
            student1.number = 34;
            student1.sex = "m";
            string std1 = student1.name + " " + Convert.ToString(student1.number) + " " + student1.sex;
            student.FileWrite(std1);


            //   Console.WriteLine();




            string[] sdk = student.FileRead("abc").Split(' ');


            Console.WriteLine(sdk[0]);
            Console.WriteLine(sdk[1]);
            Console.WriteLine(sdk[2]);


            Console.ReadKey();
        }
    }

}








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值