C#中的文件处理(2)
来源:互联网 发布:python粒子群算法包 编辑:程序博客网 时间:2024/05/29 07:37
NetworkStream 类提供在阻止模式下通过 Stream 套接字发送和接收数据的方法。可以在同步和异步数据传输时使用 NetworkStream 类。
若要创建 NetworkStream,必须提供连接的 Socket。也可指定 NetworkStream 对所提供的 Socket 具有哪些 FileAccess 权限。默认情况下,关闭 NetworkStream 并不会关闭所提供的 Socket。如果希望 NetworkStream 具有关闭所提供的 Socket 的权限,必须将 ownsSocket 参数的值指定为 true。
将 Write 和 Read 方法用于简单的单线程同步阻止 I/O。若要使用不同的线程来处理 I/O,则请考虑使用 BeginWrite 和 EndWrite 方法,或 BeginRead 和 EndRead 方法进行通信。
NetworkStream 不支持对网络数据流的随机访问。CanSeek 属性用于指示流是否支持查找,它的值始终为 false;读取 Position 属性、读取 Length 属性或者调用 Seek 方法都会引发 NotSupportedException。
公共语言运行库使用面向流的设计进行加密。该设计的核心是 CryptoStream。实现 CryptoStream 的任何加密对象可以和实现 Stream 的任何对象链接起来,因此一个对象的流式处理输出可以馈送到另一个对象的输入。不需要分别存储中间结果(第一个对象的输出)。
通过调用 Close 方法完成 CryptoStream 对象的使用后,始终应该显式关闭该对象。 这会刷新流并使所有剩余的数据块都被 CryptoStream 对象处理。 但是,如果在调用 Close 方法前发生了异常,CryptoStream 对象可能会关闭。 为确保 Close 方法始终被调用,请在 try/catch 语句的 finally 块中放置 Close 方法调用。
using System.IO;
using System.Security.Cryptography;
public class StreamTest{
public static void Main(){
MemoryStream memstr = new MemoryStream();
}
将 File 类用于典型的操作,如复制、移动、重命名、创建、打开、删除和追加到文件。也可将 File 类用于获取和设置文件属性或有关文件创建、访问及写入操作的 DateTime 信息。
许多 File 方法在您创建或打开文件时返回其他 I/O 类型。可以使用这些其他类型进一步处理文件。
由于所有的 File 方法都是静态的,所以如果只想执行一个操作,那么使用 File 方法的效率比使用相应的 FileInfo 实例方法可能更高。所有的 File 方法都要求当前所操作的文件的路径。
File 类的静态方法对所有方法都执行安全检查。如果打算多次重用某个对象,可考虑改用 FileInfo 的相应实例方法,因为并不总是需要安全检查。
默认情况下,将向所有用户授予对新文件的完全读/写访问权限。
将现有文件复制到新文件。
在指定路径中创建文件。
删除指定的文件。如果指定的文件不存在,则不引发异常。
确定指定的文件是否存在。
将指定文件移到新位置,并提供指定新文件名的选项。
将 Directory 类用于典型操作,如复制、移动、重命名、创建和删除目录。也可将 Directory 类用于获取和设置与目录的创建、访问及写入操作相关的 DateTime 信息。
由于所有的 Directory 方法都是静态的,所以如果只想执行一个操作,那么使用 Directory 方法的效率比使用相应的 DirectoryInfo 实例方法可能更高。大多数 Directory 方法要求当前操作的目录的路径。
Directory 类的静态方法对所有方法都执行安全检查。如果打算多次重用某个对象,可考虑改用 DirectoryInfo 的相应实例方法,因为并不总是需要安全检查。
创建指定路径中的所有目录。
删除指定的目录。
确定给定路径是否引用磁盘上的现有目录。
将文件或目录及其内容移到新位置。
using System;
class Test{
static void Main(string[] args){
Directory.CreateDirectory("C#");
}
FileSystemInfo 类包含文件和目录操作所共有的方法。FileSystemInfo 对象可以表示文件或目录,从而可以作为 FileInfo 或 DirectoryInfo 对象的基础。当分析许多文件和目录时,请使用该基类。
第一次调用时,FileSystemInfo 调用 Refresh 并返回 API 上的缓存信息以获取属性等。以后调用时,必须调用 Refresh 以获取信息的最新副本。
一个派生类只有从 FileIOPermissionAccess 枚举获得 AllAccess 权限时才能从 FileSystemInfo 继承。
将 FileInfo 类用于典型的操作,如复制、移动、重命名、创建、打开、删除和追加到文件。
许多 FileInfo 方法在创建或打开文件时返回其他 I/O 类型。可以使用这些其他类型进一步处理文件。
如果打算多次重用某个对象,可考虑使用 FileInfo 的实例方法,而不是 File 类的相应静态方法,因为并不总是需要安全检查。
默认情况下,将向所有用户授予对新文件的完全读/写访问权限。
常用方法
常用属性
创建一个 StreamWriter,它向 FileInfo 的此实例表示的文件追加文本。
将现有文件复制到新文件。
创建文件。
将指定文件移到新位置,并提供指定新文件名的选项。
用各种读/写访问权限和共享特权打开文件。
创建只读 FileStream。
创建只写 FileStream。
获取表示目录的完整路径的字符串。
获取指示文件是否存在的值。
获取表示文件扩展名部分的字符串。
获取目录或文件的完整目录。
获取当前文件的大小(字节)。
将 DirectoryInfo 类用于典型操作,如复制、移动、重命名、创建和删除目录。
如果打算多次重用某个对象,可考虑使用 DirectoryInfo 的实例方法,而不是 Directory 类的相应静态方法,因为并不总是需要安全检查。
常用方法:
常用属性:
创建目录
在指定路径中创建一个或多个子目录。指定路径可以是相对于 DirectoryInfo 类的此实例的路径
从路径中删除 DirectoryInfo 及其内容。
将 DirectoryInfo 实例及其内容移动到新路径。
获取指示目录是否存在的值。
获取表示文件扩展名部分的字符串。
获取目录或文件的完整目录。
获取此 DirectoryInfo 实例的名称。
获取指定子目录的父目录。
获取路径的根部分。
TextReader 为 StreamReader 和 StringReader 的抽象基类,它们分别从流和字符串读取字符。使用这些派生类可打开一个文本文件以读取指定范围的字符,或基于现有的流创建一个读取器。
派生类必须至少实现 Peek 和 Read 方法以创建一个有用的 TextReader 实例。
StreamReader从字节流中读取字符并将它转换为指定的编码
StringReader类用于从输入字符串中读取数据
StreamReader 旨在以一种特定的编码输入字符,而 Stream 类用于字节的输入和输出。使用 StreamReader 读取标准文本文件的各行信息。
除非另外指定,StreamReader 的默认编码为 UTF-8,而不是当前系统的 ANSI 代码页。UTF-8 可以正确处理 Unicode 字符并在操作系统的本地化版本上提供一致的结果。
默认情况下,StreamReader 不是线程安全的。
常用方法:
关闭 StreamReader 对象和基础流,并释放与读取器关联的所有系统资源。
读取输入流中的下一个字符或下一组字符。
从当前流中读取最大 count 的字符并从 index 开始将该数据写入 buffer。
从当前流中读取一行字符并将数据作为字符串返回。
从流的当前位置到末尾读取流。
TextWriter 是 StreamWriter 和 StringWriter 的抽象基类,它们将字符分别写入流和字符串。创建一个 TextWriter 实例,将对象写入字符串,或将字符串写入文件,或序列化 XML。也可使用 TextWriter 的实例将文本写入自定义后备存储区(所使用的 API 与用于字符串或流的 API 相同),或者增加对文本格式化的支持。
TextWriter 的所有使用基元数据类型作为参数的 Write 方法都将值作为字符串写出。
默认情况下,TextWriter 不是线程安全的。
StreamWriter 旨在以一种特定的编码输出字符,而从 Stream 派生的类则用于字节的输入和输出。
StreamWriter 默认使用 UTF8Encoding 的实例,除非指定了其他编码。UTF8Encoding 的实例不使用字节顺序标记 (BOM) 创建,因此它的 GetPreamble 方法返回一个空字节数组。要使用 UTF-8 编码和 BOM 创建 StreamWriter,请考虑使用指定编码的构造函数,例如 StreamWriter(String, Boolean, Encoding)。
默认情况下,StreamWriter 不是线程安全的。
常用方法:
关闭当前的 StreamWriter 对象和基础流。
清理当前编写器的所有缓冲区,并使所有缓冲数据写入基础流。
写入流。
将行结束符写入文本流。
- C#中的文件处理(2)
- C#中的文件处理
- C#中的文件处理(1)
- C# 中,怎样处理 (批量)文件中的数据?
- c# Aspose 图片处理(将Excel单元格中的图片拷贝到另一个Excel文件中)
- C#中的字符串处理
- C# 中的事件处理
- C# 中的事件处理
- C#中的异常处理
- c#中的异常处理
- C#中的字符串处理
- C#文件处理(上传、导入)
- C#文件处理(下载、导出)
- C#文件处理
- c# INI文件处理
- C#处理Json文件
- C#处理Json文件
- C#处理Json文件
- 幸福的眼泪
- 综合spring hibernate
- 现在啊……
- ip
- C++函数调用方式(_stdcall, _pascal, _cdecl...)总结(转)
- C#中的文件处理(2)
- Linux下Tomcat的安装
- 刚进公司的毕业生提的问题
- eclipse插件大全介绍,以及下载地址
- discuz模板机制应用
- PHP socket demo
- jquery bind
- 软弱
- 浅谈C中的malloc和free