智能模板网站建设价格,如何利用wordpress,网站建设合同书范本,做网站遇到竞争对手怎么办文件I/O
C#提供了多种方式来读写文件#xff0c;主要通过System.IO命名空间中的类来实现#xff0c;下方会列一些常用的类型#xff1a; StreamReader/StreamWriter#xff1a;用于以字符为单位读取或写入文本文件。 BinaryReader/BinaryWriter#xff1a;用于以二进制格…文件I/O
C#提供了多种方式来读写文件主要通过System.IO命名空间中的类来实现下方会列一些常用的类型 StreamReader/StreamWriter用于以字符为单位读取或写入文本文件。 BinaryReader/BinaryWriter用于以二进制格式读取或写入基本数据类型。 FileStream提供对文件的基本读写操作并支持随机访问文件。 File 和 Directory 类提供了一组静态方法用于创建、复制、删除、移动文件和目录以及检查文件和目录是否存在等。
使用StreamReader和StreamWriter
using System;
using System.IO;class Program
{static void Main(){string path example.txt;// 写入文本到文件using (StreamWriter writer new StreamWriter(path)){writer.WriteLine(Hello, world!);}// 从文件读取文本using (StreamReader reader new StreamReader(path)){string content reader.ReadToEnd();Console.WriteLine(content);}}
}
使用BinaryReader和BinaryWriter
using System;
using System.IO;class Program
{static void Main(){string path example.dat;// 创建或覆盖文件并准备写入using (BinaryWriter writer new BinaryWriter(File.Open(path, FileMode.Create))){writer.Write(123); // 写入整数writer.Write(3.14f); // 写入单精度浮点数writer.Write(Hello, World!); // 写入字符串}Console.WriteLine(Data written to file.);}
}
using System;
using System.IO;class Program
{static void Main(){string path example.dat;// 打开文件进行读取using (BinaryReader reader new BinaryReader(File.Open(path, FileMode.Open))){int intValue reader.ReadInt32(); // 读取整数float floatValue reader.ReadSingle(); // 读取单精度浮点数string stringValue reader.ReadString(); // 读取字符串Console.WriteLine($Integer Value: {intValue});Console.WriteLine($Float Value: {floatValue});Console.WriteLine($String Value: {stringValue});}}
}
注意事项 顺序当你使用 BinaryWriter 写入数据时必须记住写入数据的顺序因为在使用 BinaryReader 读取数据时你也需要按照相同的顺序来读取这些数据。 编码默认情况下BinaryWriter 使用 UTF-8 编码写入字符串。如果你需要不同的编码可以在创建 BinaryWriter 实例时指定编码方式。 异常处理在实际应用中你应该添加适当的错误处理代码如 try-catch 块以便处理可能发生的 I/O 错误或其他异常情况。
通过 BinaryReader 和 BinaryWriter你可以高效地对基本数据类型进行二进制格式的读写操作这对于处理大量数据或者需要精确控制数据存储格式的情况特别有用。然而请注意对于复杂的对象序列化你可能需要考虑其他方法比如 XML 或 JSON 序列化。
使用FileStream
创建和写入文件
using System;
using System.IO;
using System.Text;class Program
{static void Main(){string path example.txt;string content Hello, World!;// 使用 FileStream 创建或覆盖文件并准备写入using (FileStream fs new FileStream(path, FileMode.Create, FileAccess.Write)){byte[] info new UTF8Encoding(true).GetBytes(content);// 将字节数组写入文件fs.Write(info, 0, info.Length);}Console.WriteLine(Data written to file.);}
}
读取文件
using System;
using System.IO;class Program
{static void Main(){string path example.txt;// 使用 FileStream 打开文件进行读取using (FileStream fs new FileStream(path, FileMode.Open, FileAccess.Read)){byte[] b new byte[1024];UTF8Encoding temp new UTF8Encoding(true);// 循环读取文件中的所有数据while (fs.Read(b, 0, b.Length) 0){Console.WriteLine(temp.GetString(b));}}}
}
使用File 和 Directory 类
常用的 File 方法包括 Create: 创建或覆盖指定路径上的文件。 Copy: 将现有文件复制到新位置可以选择是否覆盖目标位置的现有文件。 Delete: 删除指定的文件。 Exists: 判断指定的文件是否存在。 Move: 移动指定的文件到新位置。 ReadAllBytes, ReadAllLines, ReadAllText: 读取文件的内容为字节数组、字符串数组或单个字符串。 WriteAllBytes, WriteAllLines, WriteAllText: 将字节数组、字符串数组或单个字符串写入文件。
string sourceFile C:\source\example.txt;
string destFile D:\destination\example.txt;if (!File.Exists(destFile))
{File.Copy(sourceFile, destFile, true);
}
常用的 Directory 方法包括 CreateDirectory: 创建指定路径中的所有目录和子目录。 Delete: 删除指定的目录及其内容。 Exists: 判断指定的目录是否存在。 GetDirectories: 获取指定目录中的子目录名称。 GetFiles: 获取指定目录中的文件名称。 Move: 将指定的目录及其内容移动到新位置。 EnumerateDirectories, EnumerateFiles: 遍历目录或文件集合支持延迟执行。
string newDirPath C:\newfolder;if (!Directory.Exists(newDirPath))
{Directory.CreateDirectory(newDirPath);
}
File 和 Directory注意事项
当使用 File 或 Directory 类的静态方法可能更方便。但是如果计划多次重用某个对象考虑使用 FileInfo 或 DirectoryInfo 类的实例方法因为这可以避免重复的安全检查并可能提高性能。
请注意尽管 BinaryFormatter 曾经是一个流行的序列化工具但出于安全性和兼容性的考虑在新的开发工作中应避免使用它而转向其他更安全的替代方案如 JSON 序列化。不过这一建议与 File 和 Directory 类的主要用途并不直接相关这里只是作为补充信息提供。