C#文件读写操作

末蓝、 2021-09-12 06:54 543阅读 0赞

1 文件和目录操作

.NET框架类库向用户提供了一个File类和Directory类,它们位于System.IO命名空间中。

1.1 File类的方法




























方法 说明

Create (string path)

在指定路径中创建或覆盖文件

Exists(string path)

用于检查指定文件是否存在,该方法返回一个布尔值

Copy(string SourceFilePath,

string DestinationFilePath)

按指定路径的源文件中的内容复制到目标文件中,如果目标

文件不存在,则在指定路径中新建一个文件

Move (stringsourceFileName,
string destFileName)

将指定文件移动到一个新的路径

Delete(string path)

删除指定的文件,如果指定的文件不存在,则不引发异常

1.2 Directory类的方法




























方法 说明

CreateDirectory (string path)

path 的指定创建所有目录和子目录。

Exists(string path)

用于检查指定文件夹在磁盘上是否存在

Move(stringsourceDirName,

stringdestDirName)

用于将文件或目录及其内容移到新位置

Delete(string,Boolean)

删除指定目录,如果bool指定true,则删除子目录中的所有目录内容

Delete(string path)

删除指定的文件,如果指定的文件不存在,则不引发异常

1.3 示例:创建目录和文件

  1. public string _directory = @"D:\MyDir\"; //目录
  2. public string _fileName = "MyFile.txt"; //文件名
  3. /// <summary>
  4. /// 创建目录与文件
  5. /// </summary>
  6. public void CreateFile()
  7. {
  8. try
  9. {
  10. string path = _directory + _fileName;
  11. if (!Directory.Exists(_directory))
  12. {
  13. Directory.CreateDirectory(_directory);
  14. }
  15. if (!File.Exists(path))
  16. {
  17. File.Create(path);
  18. }
  19. }
  20. catch (Exception e)
  21. {
  22. Response.Write(e.StackTrace);
  23. }
  24. }

2 文件的读写操作

2.1 使用StreamReader和StreamWriter读写文件

2.1.1 使用StreamWriter写入文件

  1. public void WriteMessage()
  2. {
  3. string path = _directory + _fileName;
  4. string message = "我的博客:http://blog.csdn.net/pan_junbiao/";
  5. try
  6. {
  7. //如果文件不存在,则创建文件
  8. if (!File.Exists(path))
  9. {
  10. CreateFile();
  11. }
  12. //1.创建文件流
  13. FileStream fileStream = new FileStream(path, FileMode.Create);
  14. //2.创建写入器
  15. StreamWriter streamWriter = new StreamWriter(fileStream);
  16. //3.将内容写入文件
  17. streamWriter.WriteLine(message);
  18. //4.关闭写入器
  19. streamWriter.Close();
  20. //5.关闭文件流
  21. fileStream.Close();
  22. }
  23. catch (Exception e)
  24. {
  25. Response.Write(e.StackTrace);
  26. }
  27. }

2.1.2 使用StreamReader读出文件

  1. public void ReadMessage()
  2. {
  3. string path = _directory + _fileName;
  4. string message = "";
  5. try
  6. {
  7. //判断文件是否存在
  8. if (File.Exists(path))
  9. {
  10. //1.创建文件流
  11. FileStream fileStream = new FileStream(path, FileMode.Open);
  12. //2.创建读取器
  13. StreamReader streamReader = new StreamReader(fileStream);
  14. //3.读取文本所有内容
  15. message = streamReader.ReadToEnd();
  16. //4.关闭读取器
  17. streamReader.Close();
  18. //5.关闭文件流
  19. fileStream.Close();
  20. //输出内容
  21. Response.Write(message);
  22. }
  23. }
  24. catch (Exception e)
  25. {
  26. Response.Write(e.StackTrace);
  27. }
  28. }

2.2 使用缓存流复制文件

2.2.1 示例:将歌曲一个目录下复制到另一目录下,并重命名。

  1. /// <summary>
  2. /// 使用缓存流复制文件
  3. /// </summary>
  4. public void BufferedOperation()
  5. {
  6. string path1 = @"D:\MyMusic1\Music.mp3";
  7. string path2 = @"D:\MyMusic2\Music_bet.mp3";
  8. try
  9. {
  10. //判断文件是否存在
  11. if (File.Exists(path1))
  12. {
  13. //创建两个文件流 一个是源文件相关,另一个是要写入的文件
  14. FileStream fileStream1 = new FileStream(path1, FileMode.Open);
  15. FileStream fileStream2 = new FileStream(path2, FileMode.Create);
  16. //创建一个字节数组,作为两者之间的媒介
  17. byte[] data = new byte[1024];
  18. //创建两个缓冲流,与两个文件流相关联
  19. BufferedStream bufferedStream1 = new BufferedStream(fileStream1);
  20. BufferedStream bufferedStream2 = new BufferedStream(fileStream2);
  21. //复制文件
  22. while (fileStream1.Read(data, 0, data.Length) > 0)
  23. {
  24. fileStream2.Write(data, 0, data.Length);
  25. fileStream2.Flush();
  26. }
  27. //关闭文件流
  28. fileStream1.Close();
  29. fileStream2.Close();
  30. }
  31. }
  32. catch (Exception e)
  33. {
  34. Response.Write(e.StackTrace);
  35. }
  36. }

发表评论

表情:
评论列表 (有 0 条评论,543人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C语言文件操作

    将一个磁盘文件中的信息复制到另一个磁盘文件中。 分析:从file1.dat文件中逐个字符读入,然后逐个输出到file2.dat中 include<stdio.h>