• c# 流的概念以及一个操作文本文件的实例代码

    [c#]
    post by bgaidu / 2008-12-24 16:35 Wednesday
    //注意:
    //在计算机编程中,流就是一个类的对象,很多文件的输入输出操作都以类的成员函数的方式来提供。
    //计算机中的流其实是一种信息的转换。它是一种有序流,因此相对于某一对象,通常我们把对象接收外界的信息输入(Input)称为输入流,相应地从对象向外输出(Output)信息为输出流,合称为输入/输出流(I/O Streams)。对象间进行信息或者数据的交换时总是先将对象或数据转换为某种形式的流,再通过流的传输,到达目的对象后再将流转换为对象数据。所以,可以把流看作是一种数据的载体,通过它可以实现数据交换和传输。
    //程序中流的概念和操作系统中流的概念是不一样的,操作系统中的流可以看成是数据流,而程序中的流的概念其实是一个用来处理流的类。
    //流就是在内存中操作数据的一种方式
    //.net中有多种多样的流类型
    //C#里有很多封装类不一定都要用流  

    测试代码:

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace FileAndFileInfo
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("输入已存目录");
                string sBaseDir = Console.ReadLine();
                FileAndFileInfo.ListFile(sBaseDir);
                Console.WriteLine("输入创建目录");
                string sNewFile = Console.ReadLine();
                FileAndFileInfo.CreatFile(sNewFile);
                //读取目录中文本文件内容
                FileAndFileInfo.ReadFlie(sNewFile);
                //删除指定目录
                //FileAndFileInfo.DelectFile(sNewFile);
            }
        }
    }

    类代码:

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;

    namespace FileAndFileInfo
    {
        class FileAndFileInfo
        {
            //列出目录中的文件
            public static void ListFile(string sDir)
            {
                if (Directory.Exists(sDir))
                {
                    //使用一个绝对路径初始化一个表示目录的对象
                    DirectoryInfo di = new DirectoryInfo(sDir);
                    //遍历目录(不包括子目录)下面的文件,注意不包括子目录,这点很重要,暨子文件夹不显示
                    Console.WriteLine("文件创建时间\t\t文件名\t\t\t文件大小");
                    //foreach (FileInfo file in di.GetFiles)//foreach 语句无法在“方法组”上执行。您是要调用“方法组”吗?
                    foreach (FileInfo file in di.GetFiles())
                        Console.WriteLine(string.Format("{0}\t{1}\t\t{2}", file.CreationTime, file.Name, file.Length));
                }
                else
                    Console.WriteLine("文件{0}不存在。",sDir);
            }
            //创建文本文件,注意是文本文件而不是文件夹
            public static void CreatFile(string sFile)
            {
                //获取一个文件流对象,用于读写文件
                FileStream fs = File.Create(sFile);//此处,在相关目录下创建了指定名称的文本文件
                //获取一个指向文件的流编辑器
                StreamWriter sw = new StreamWriter(fs);//此处,创建了操作文本文件的字符流的对象
                //写入文本
                Console.WriteLine("输入文本内容");
                string str = Console.ReadLine();
                sw.WriteLine(str);//将输入的文本内容写入先前创建的文本文件
                //关闭对象,释放资源
                sw.Close();
                fs.Close();
                Console.WriteLine(string.Format("创建文本文件>>{0}",sFile));
            }
            //读取文本文件
            public static void ReadFlie(string sFile)
            {
                string str = "";
                StreamReader sr = new StreamReader(sFile);
                str=sr.ReadToEnd();//此处,创建了操作文本文件的字符流的对象
                sr.Close();
                Console.WriteLine(string.Format("读取文本文件>>{0}",str));
            }
            //删除文件
            public static void DelectFile(string sFile)
            {
                File.Delete(sFile);
                Console.WriteLine(string.Format("删除文件>>{0}",sFile));
            }
        }
    }



    
    您对本文的评分:
    当前平均分: 0.0(0 次打分)

    引用地址:

    发表评论: