C# FileInfo类
阿里云服务器,每月低至7.8元,项目演示即建站必备,比腾讯云更便宜,并且不需学生认证,从此链接购买有效:去购买
您已经学习了如何使用上一节中的静态File类对物理文件执行不同的任务。 这里,我们将使用FileInfo类对物理文件执行读/写操作。 FileInfo类提供与静态File类相同的功能,但是您可以通过手动写入代码来读取或写入文件中的字节,从而更好地控制对文件的读/写操作。 FileInfo主要的属性和方法
以下示例显示如何手动读取文件中的字节,然后使用UTF8编码将它们转换为字符串: 相关实例: //Create object of FileInfo for specified path FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //Open file for Read\Write FileStream fs = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite); //create byte array of same size as FileStream length byte[] fileBytes = new byte[fs.Length]; //define counter to check how much butes to read. Decrease the counter as you read each byte int numBytesToRead = (int)fileBytes.Length; //Counter to indicate number of bytes already read int numBytesRead = 0; //iterate till all the bytes read from FileStream while (numBytesToRead > 0) { int n = fs.Read(fileBytes, numBytesRead, numBytesToRead); if (n == 0) break; numBytesRead += n; numBytesToRead -= n; } //Once you read all the bytes from FileStream, you can convert it into string using UTF8 encoding string filestring = Encoding.UTF8.GetString(fileBytes); 正如你在上面的代码中看到的,你必须编写大量代码来从FileSream读取/写入一个字符串。 使用StreamReader和StreamWriter可以轻松完成相同的读/写操作。 以下示例显示了StreamReader如何使得从文件中读取字符串变得容易: 相关实例: //Create object of FileInfo for specified path FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //Open file for Read\Write FileStream fs = fi.Open(FileMode.OpenOrCreate, FileAccess.Read , FileShare.Read); //Create object of StreamReader by passing FileStream object on which it needs to operates on StreamReader sr = new StreamReader(fs); //Use ReadToEnd method to read all the content from file string fileContent = sr.ReadToEnd(); //Close StreamReader object after operation sr.Close(); fs.Close(); 注意fi.Open()有三个参数:第一个参数是FileMode用于创建和打开一个文件,如果它不存在; 第二个参数FileAccess,用于指示读操作; 第三个参数是在文件打开时与其他用户共享文件以供阅读。 以下示例显示了StreamWriter如何轻松地将字符串写入文件: 相关实例: //Create object of FileInfo for specified path FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //Open file for Read\Write FileStream fs = fi.Open(FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read ); //Create StreamWriter object to write string to FileSream StreamWriter sw = new StreamWriter(fs); sw.WriteLine("Another line from streamwriter"); sw.Close(); 读取和写入操作不能同时在同一个FileStream对象上。 如果您已经从文件中读取,请创建一个单独的FileStream对象以写入同一个文件,如下所示: 相关实例: //Create FileInfo object for DummyFile.txt FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //open DummyFile.txt for read operation FileStream fsToRead = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite , FileShare.ReadWrite); //open DummyFile.txt for write operation FileStream fsToWrite = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite); //get the StreamReader StreamReader sr = new StreamReader(fsToRead); //read all texts using StreamReader object string fileContent = sr.ReadToEnd(); sr.Close(); //get the StreamWriter StreamWriter sw = new StreamWriter(fsToWrite); //write some text using StreamWriter sw.WriteLine("Another line from streamwriter"); sw.Close(); //close all Stream objects fsToRead.Close(); fsToWrite.Close(); 因此,您可以使用FileInfo,StreamReader和StreamWriter类从物理文件读取/写入内容。 更多FileInfo相关的资料阿里云服务器,每月低至7.8元,项目演示即建站必备,比腾讯云更便宜,并且不需学生认证,从此链接购买有效: 去购买
版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境 本文地址:http://www.yuanjiaocheng.net/CSharp/Csharp-fileinfo.html |