zoukankan      html  css  js  c++  java
  • 文件流的使用

    使用文件流需要引用程序集:using System.IO;

    文件流涉及到的类很多:

    FileInfo:操作类。通过实例化对象,通过对象去调用方法实现对文件的操作。如果需要对文件进行大量操作,建议使用这个类。

    File:操作类。是一个静态类,可以通过类直接调用方法实现对文件的操作,比较方便。如果是对文件进行少量的操作,建议使用这个类。

    【文件流本身就是一个抽象的概念,可以简单把下面三个类的对象理解为文件流。当我们实例化时,就可以认为我们开启了一个文件流,然后就可以通过  FileInfo    File  两个操作类对文件进行操作。需要注意的是,文件流开启之后,需要我们手动释放文件流,不然程序会报错,同时也可以使用  using  关键字来规避这个问题】

    FileStream:操作的是字节和字节数组,适用于任何类型的文件。

    StreamWriter   StreamReader:这两个类操作的是字符数据,只适用于文本类型的文件。

    下面以文本文档为例:

     1 using UnityEngine;
     2 using System.IO;
     3 
     4 public class Test : MonoBehaviour
     5 {
     6     FileStream fs;
     7     StreamWriter sw;
     8     StreamReader sr;
     9 
    10     private void Start()
    11     {
    12         Do();
    13     }
    14 
    18     private void Do()
    19     {
    20         FileInfo info = new FileInfo(Application.dataPath + @"123.txt");
    21         //判断文件是否存在
    22         if (info.Exists)//如果存在
    23         {
    24             //读取文件
    25             //fs = info.OpenRead();
    26             sr = info.OpenText();
    27             //将读取的文件赋值给 str 并打印
    28             string str = sr.ReadToEnd();
    29             print(str);
    30             //释放流  两种方法用一个即可
    31             //fs.Dispose();
    32             //fs.Close();
    33             sr.Dispose();
    34             sr.Close();
    35         }
    36         else//如果不存在
    37         {
    38             //创建文件
    39             //fs = info.Create();//文本文件两种方法都行
    40             sw = info.CreateText();
    41             //写入数据
    42             sw.Write("HelloWord!");
    43             //释放流
    44             //fs.Dispose();
    45             //fs.Close();
    46             sw.Dispose();
    47             sw.Close();
    48 
    49         }
    50         /////////////////////////////////////////////////////////////////////////////////////////////
    51         //File 的用法
    52         //fs = File.Create(Application.dataPath + @"123.txt");
    53         //sw = File.CreateText(Application.dataPath + @"123.txt");
    54     }
    55 
    56 }

    使用 using 关键字就不再需要调用 Dispose() 或者 Close() 去释放流

     1 using UnityEngine;
     2 using System.IO;
     3 
     4 public class Test : MonoBehaviour
     5 {
     6     private void Start()
     7     {
     8         //使用 using 关键字就不再需要调用 Dispose() 或者 Close() 去释放流
     9         using (FileStream fileStream=new FileStream(Application.dataPath + @"123.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite))
    10         {
    11             //执行代码........
    12         }
    13     }
    14 }

    以上是文件流简单的使用方法以及思路,里面包含的方法很多,需要去慢慢摸索。关于  FileStream  类的更多用法请到序列化相关文章查阅。

  • 相关阅读:
    <QT学习>串口QSerialPort类同步与异步接收和发送数据
    <QT学习>QT生成与调用共享库
    《Pinctrl和GPIO子系统的使用》
    《查询方式的按键驱动程序》
    《C库 — sprintf字符串格式化命令,把格式化的数据写入某个字符串中》
    《C库 — 字符串合并函数strcat 字符串常量导致程序崩溃》
    Ex 5_22 在此我们基于以下性质给出一个新的最小生成树算法..._第九次作业
    Ex 5_21 无向图G=(V,E)的反馈边集..._第九次作业
    Ex 5_33 实现一个关于公式长度(其中所有文字总的出现次数)为线性时间的Horn公式可满足性问题_第十次作业
    Ex 5_28 Alice想要举办一个舞会..._第十次作业
  • 原文地址:https://www.cnblogs.com/xiaoyulong/p/8260835.html
Copyright © 2011-2022 走看看