zoukankan      html  css  js  c++  java
  • C#中的文件操作2

    1.  读取文件的方法:

      1.  声明一个文件流: 目的是为了内存与文件之间的桥梁,可以进行数据的往来。

      FileStream fs = new FileStream(filename,FileMode.Open,FileAccess.Read,FileShare.None);

      4个参数的意义   文件名 、 打开文件的方式 、 对文件进行什么样的操作 、 是否允许其他进程共享(值为FileShare.None的时候,谢绝共享) 。注意,第2个参数要与第3个参数配对, 例如 Open 对应 Read , Create 对于 Write

      2.  创建读取器: 用于操作文件流,来达到读取文件的目的。

      StreamReader sr = new StreamReader(fs,Encoding.Default);

       3.  读取文件操作: 用于EndOfStream 指示是否读到流的末尾

        ReadToEnd()  一次读取文件中所有的内容

        ReadLine()     分行读取

                    //str = sr.ReadToEnd(); 一次读取到底
                    //一行一行读取
                    while(sr.EndOfStream == false)
                    {
                        string line = sr.ReadLine();
                        str += (line + "
    ");
                    }

       4.  关闭读取器:

        sr.Close();

       5.  释放所操作的文件流对象

        fs.Close();

    2.  写入文件的方法:

      1.  声明一个文件流:目的是为了内存与文件之间的桥梁,可以进行数据的往来。做法与读取文件时相似。

      FileStream fs = new FileStream(myFilePath, FileMode.Create);

       2.  创建写入器:用于操作文件流,来达到写入文件的目的。

      StreamWriter sw = new StreamWriter(fs,Encoding.Default);

       3.  写入文件操作: 一般采用 Write() 方法

      sw.Write(str);

         4.  关闭写入器:

      sw.Close();

         5.  释放所操作的文件流对象

      fs.Close();

    3.  为什么要关闭读写器、文件流

      为什么要关闭文件流后,文件才会全部写入?如果写人文件后,不关闭写入器,文件中会出现没有数据或者数据不全的情况。

         1.写入器先将数据写入到文件流所指向的内存中(也就是一个缓冲区),只有当这块内存被写满的时候,才会把内存中的数据写入到磁盘上,也就是将数据写入到文件里面。

         2.当我们关闭文件读写器的时候,缓冲区中剩下的数据就会被写入到文件中。如果之前读取到的数据没有把缓冲区写满,则文件中没有数据;反之文件中的数据不全。

         3.对文件进行操作后,一定要关闭读写器、文件流,因为这些读写器、文件流占用了系统资源。

    4.  注意

      1.  当我们打开一个文件,如果出现英文正常,汉字为乱码,首先要考虑的是编码问题。

           读取文件时采用的编码和写入文件的时候采用的编码要一致。

       2.  当我们在声明文件流、读写器的时候,可以先写好关闭文件流、读写器的操作。因为有可能,对文件的操作比较复杂,当我们完成操作后,会忘记关闭文件流、读写器。

       3.  获取当前应用程序所在的文件路径:  Application.StartupPath

    5.  几种与文件有关的对话框 

    1.  提示用户打开文件的对话框  OpenFileDialog  

       常用属性:

         Multiselect  bool类型,是否可以在对话框中选中多个文件。

         InitialDirectory  对话框打开时显示的初始目录。

         SafeFileName  对话框中所选文件的文件名和扩展名。 文件名不包含路径。

           Filter  获取或设置当前文件名筛选器字符串,该字符串决定对话框的“另存为文件类型”或“文件类型”框中出现的选择内容。   例如, “可执行程序|*.exe|word文档|*.doc” ;

         FileName  获取或设置一个包含在文件对话框中选定的文件名的字符串。

    2.  提示用户保存文件的对话框  SaveFileDialog

       常用属性:  与OpenFileDialog相同

    3.  提示用户选择文件夹的对话框  FolderBrowserDialog

         常用属性:  

          Description  获取或设置对话框中在树视图控件上显示的说明文本。

           SelectedPath  获取或设置用户选定的路径。

  • 相关阅读:
    自己学习编程时间比较短,现在把一下自己以前刚刚接触C++时的程序上传一下,有空可以看看
    Scene is unreachable due to lack of entry points and does not have an identifier for runtime access via -instantiateViewControllerWithIdentifier解决办法
    CocosPods 每次install pod 都卡在analyzing
    NSArray,NSMutable和NSSet,NSMutableSet和NSDictionary,NSMutableDictionary用法
    准备离职,工作的一些细节记录
    SpriteBuilder 不能对设置spriteframe的sprite进行设置dynamic Physics解决办法
    SpriteBuilder 不能 Portrait
    LLVM和GCC的区别
    cocos2d 3.3 安装教程
    浅谈 关于ARC循环引用得问题
  • 原文地址:https://www.cnblogs.com/lcxBlog/p/4508264.html
Copyright © 2011-2022 走看看