zoukankan      html  css  js  c++  java
  • 文件及数据流技术

    文件

    1.File类

    File类支持对文件的基本操作,它包括用于创建、复制、删除、移动和打开文件的静态方法,并且协助创建FileStream对象。

    File类的常用方法及说明

    方法                            说明

    Copy                            将现有文件复制到新文件

    Create                        在指定路径中创建文件

    Delete                         删除指定文件

    Exists                          指定文件是否存在

    Move                           将指定文件移到新位置,并提供指定新文件名的选项

    Open                           打开指定路径上的FileStream

    CreateText                创建或打开一个文件用于写入UTF-8编码的文本

    GetCreationTime     返回指定文件或目录的创建日期和时间

    GetLastAccessTime         返回上次访问指定文件或目录的日期和时间

    GetLastWriteTime  返回上次写入指定文件或目录的日期和时间

    OpenRead                  打开现有文件以进行读取

    OpenText                   打开现有UTF-8编码文件以进行读取

    OpenWrite                 打开现有文件以进行写入

    ReadAllBytes            将文件内容读入一个字符串

    ReadAllLines             将文件的所有行读入一个字符串数组

    ReadAllText               将文件的所有行读入一个字符串

    Replace                      使用其他文件的内容替换指定文件的内容

    SetCreationTime      设置创建该文件的日期和时间

    SetLastAccessTime 设置上次访问指定文件的日期和时间

    SetLastWriteTime   设置上次写入指定文件的日期和时间

    WriteAllBytes           写入指定的字节数组,如果目标文件不存在,就创建

    WriteAllLines            写入指定的字符串

    WriteAllText              写入内容

    说明:

    a).由于File类中的所有方法都是静态的,所以如果只想执行一个操作,那么使用File类中方法的效率比使用相应FileInfo类中的方法可能更高。

    b).File类的静态方法对所有方法都执行安全检查,因此如果打算多次重用某个对象,可考虑改用FileInfo类中的相应方法,因为并不总是需要安全检查。

    2.Directory类

    Directory类公开了用于创建、移动、枚举、删除目录和子目录的静态方法。

    Directory类的常用方法及说明:

    CreateDirectory:创建指定路径中的所有目录

    Delete:删除指定目录

    Exists:确定给定路径是否引用磁盘上的现有目录

    GetCreationTime:获取目录的创建日期和时间

    GetDirectories:获取指定目录中子目录的名称

    GetDirectoryRoot:返回指定路径的卷信息、根信息或两者同时返回

    GetFiles:返回指定目录中的文件的名称

    GetFilesSystemEntries:返回指定目录中所有文件和子目录的名称

    GetLastAccessTime:返回上次访问指定文件或目录的日期和时间

    GetLastWriteTime:返回上次写入指定文件或目录的日期和时间

    GetParent:检索指定路径的父目录,包括绝对路径和相对路径

    Move:将文件或目录及其内容移到新位置

    SetCreationTime:

    SetCurrentDirectory:

    SetLastAccessTime:

    SetLastWirteTime:

    注:在用Directory类对文件夹进行操作时,其文件夹的路径必须争取,否则会触发异常。

    3.FileInfo类

    FileInfo fInfo = new FileInfo(“文件路径”);

    fInfo.Exists;

    FileInfo类的常用属性及说明

    CreationTime:获取或设置当前FileSystemInfo对象的创建时间

    Directory:获取父目录的实例

    DirectoryName:获取表示完整目录的完整路径字符串

    Exists:获取指定文件是否存在的值

    Extension:获取表示文件扩展名部分的字符串

    FullName:获取目录或文件的完整目录

    IsReadOnly:获取或设置确定当前文件是否为只读的值

    LastAccessTime:获取或设置上次访问当前文件或目录的时间

    LastWriteTime:获取或设置上次写入当前文件或目录的时间

    Length:获取当前文件大小

    Name:获取文件

    4.DirectoryInfo类

    DirectoryInfo类的常用属性及说明

    CreationTime:获取或设置当前FileSystemInfo对象的创建时间

    Exists:获取指定文件是否存在的值

    Extension:获取表示文件扩展名部分的字符串

    FullName:获取目录或文件的完整目录

    LastAccessTime:获取或设置上次访问当前文件或目录的时间

    LastWriteTime:获取或设置上次写入当前文件或目录的时间

    Name:获取文件

    Parent:获取指定子目录的父目录

    Root:获取路径的根部分

    数据流

    1.文件流类

    1).FileStream类的常用属性

    CanRead:获取当前流是否支持读取

    CanSeek:获取当前流是否支持查找

    CanTimeout:获取当前流是否支持写入

    CanWrite:获取是否支持写入

    IsAsync:获取FileStream是异步还是同步打开

    Length:获取字节表示的流长度

    Name:获取传递给构造函数的FileStream的名称

    Position:获取或设置此流的当前位置

    ReadTimeout:获取或设置流在超时前尝试读取多长时间

    WriteTimeout:获取或设置流在超时前尝试写入多长时间

    2).FileStream类的常用方法

    BeginRead:开始异步读操作

    BeginWrite:开始异步写操作

    Close:关闭当前流并释放与之关联的所有资源

    EndRead:等待挂起的异步读取完成

    EndWrite:结束异步写入,在I/O操作完成之前一直阻止

    Lock:允许读取访问的同时防止其他进程更改FileStream

    Read:从流中读取字节块并将该数据写入给定的缓冲区中

    ReadByte:从文件中读取一个字节,并将读取位置提升一个字节

    Seek:将该流的当前位置设置为给定值

    SetLength:将该流的长度设置为给定值

    Unlock:允许其他进程访问以前锁定的某个文件的全部或部分

    Write:使用从缓冲区读取的数据将字节块写入流

    WriteByte:将一个字节写入文件流的当前位置

    3).使用FileStream类操作文件

    FileMode类的枚举成员及说明

    Append:打开现有文件并查找到文件尾,或创建新文件。只能和FileAccess.Write一起使用

    Create:指定操作系统应创建新文件,如果文件存在,则改写

    CreateNew:指定操作系统应创建新文件,如果文件存在,则产生异常

    Open:指定操作系统应打开现有文件。如果文件不存在,则产生异常

    OpenOrCreate:指定操作系统应打开文件,如果文件存在;否则,应创建新文件。

    Truncate:指定操作系统应打开现有文件。文件一旦打开,将被截断为零字节大小

    FileStream aFile = new FileStream(“Test.txt”, FileMode.OpenOrCreate, FileAccess.ReadWrite)

    2.文件文件的写入与读取

    1).StreamWriter是专门用来处理文本文件的类,可以方便地向文本中写入字符串。同时也负责重要的转换和处理向FileStream对象写入工作。

    SteamWriter类的常用属性及说明

    Encoding:获取将输出写入到其中的Encoding

    Formatprovider:获取控制格式设置的对象

    NewLine:获取或设置由当前TextWriter使用的行结束符字符串

    StreamWriter类的常用方法及说明

    Close:关闭当前的StringWriter和基础流

    Write:写入到StringWriter的此实例中

    WriteLine:写入重载参数指定的某些数据,后跟行结束符

    StreamWriter sw = new StreamWriter(“文件名.txt”,true);

    sw.WriteLine(“”);

    sw.Close();

    2).StreamReader类

    StreamReader是专门用来读取文本文件的类,它可以从底层Stream对象创建StreamReader对象的实例,而且也能指定编码规范参数。

    常用方法及说明

    Close:关闭StreamReader

    Read:读取输入字符串中的写一个字符或下一组字符

    ReadBlock:从当前流中读取最大count的字符并从index开始将该数据写入Buffer

    ReadLine:从基础字符串中读取一行

    ReadToEnd:将整个流或从流的当前位置到流的结尾作为字符串读取

    SteamReader sr = new SteamReader(“文件名.txt”);

    string str = sr.ReadToEnd();

    sr.Close();

    3.二进制文件的写入与读取

    1).BinaryWriter类以二进制形式将基元类型写入流,并支持用特定的编码写入字符串。

    常用方法及说明

    Close:关闭当前的BinaryWriter和基础流

    Seek:设置当前流中的位置

    Write:将值写入当前流

    BinaryWriter myWriter = new BinaryWriter(myStream);

    myWriter.Write(“”);

    myWriter.Close();

    2).BinaryReader类

    BinaryReader用特定的编码将基元数据类型读作二进制值。

    常用方法及说明

    Close:关闭当前阅读器及基础流

    PeekChar:返回下一个可用的字符,并且不提升字节或字符的位置

    Read:从基础流中读取字符,并提升流的当前位置

    ReadBoolean:从当前流中读取Boolean值,并使该流的当前位置提升一个字节

    ReadByte:从当前流中读取下一个字节,并使流的当前位置提升一个字节

    ReadBytes:从当前流中将count个字节读入字节数组,并使当前位置提升count个字节

    ReadChar:从当前流中读取count个字符,以字符数组的形式返回数据,并根据所使用的Encoding和从流中读取的特定字符,提升当前位置

    ReadInt32:从当前流中读取4个字节的有符号整数,并使流的当前位置提升4个字节

    ReadString:从当前流中读取一个字符串

    FileStream myStream = new FileStream(“文件名.txt”,FileMode.Open,FileAccess.Read);

    BinaryReader myReader = new BinaryReader(myStream);

    if(myReader.PeekChar() != -1)

    {

             myReader.ReadInt32();

    }

    myReader.Close();

    myStream.Close();

    《C#从入门到精通》读后总结

  • 相关阅读:
    ubuntu下ftp服务
    git远程提交失败
    ImportError: libQtTest.so.4: cannot open shared
    python-----群发图片
    pytorch------cpu与gpu load时相互转化 torch.load(map_location=)
    python-----用多张图片生成视频
    python-----实现微信撤回消息还原
    not syncing : corrupted stack end detected inside scheduler
    树莓派-----中文输入法设置
    树莓派-----局域网电脑远程桌面连接
  • 原文地址:https://www.cnblogs.com/hmliang/p/5335305.html
Copyright © 2011-2022 走看看