zoukankan      html  css  js  c++  java
  • c#之文件操作

    1、c#文件操作涉及到的命名空间

    using System.Text;
    using System.IO;

    2、路径输入

    在上一篇中写到c#格式化输出,这里提一下获取控制台输入。

    其实了解一点英语的朋友都知道Write是写那对着的Read是读,针对的对象是控制台。

    我们常用的Console.WriteLine是写且带回车,则Console.ReadLine是从用户输入的地方开始读取直到该行结束。

    Console.Write是一个字符一个字符的写,则Console.Read是从用户输入的地方开始一个字符一个字符的读取。

    用户输入时“”不用转义。

    3、获取文件句柄

    利用DirectoryInfo返回目录句柄,虽然目录是一种特殊的文件,但是这里的参数是目录路径不是文件路径。

    后再通过该对象的GetFiles方法返回该目录下的文件信息或句柄。

    4、读取文件内容

    使用StreamReader在内存中开辟一个输入流,将磁盘文件读入到内存中。

    然后通过该输入流对象的ReadLine方法读取文件,然后一行一行的输出。

    注意:最后需要关闭输入流。

    5、写文件

    使用FileStream类创建文件,使用StreamWriter类,将数据写入到文件。

    注意:最后需要清空缓存,关闭输出流。

     示例:

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Text;
      4 using System.IO;
      5 
      6 /// <summary>
      7 /// [功能描述:
      8 /// 1、使用 I/O 类列出某一目录下的所有文件名,并输出到标准控制台
      9 /// 2、读文本文件(逐行),并输出到标准控制台
     10 /// 3、新建一个文件并向文件中写入字符串
     11 /// ]<br></br>
     12 /// [创 建 者: XXX]<br></br>
     13 /// [创建时间: 2017-08-28]<br></br>
     14 /// <修改记录 
     15 ///        修改人='' 
     16 ///        修改时间='yyyy-mm-dd' 
     17 ///        修改目的=''
     18 ///        修改描述=''
     19 ///  />
     20 /// </summary>
     21 namespace ConsoleApplication1
     22 {
     23     class File
     24     {
     25         public File()
     26         {
     27             Console.Write("请输入目录路路径:");
     28             string path = Console.ReadLine();
     29             ReadFileName(path);
     30             Console.WriteLine();
     31             Console.Write("请输入要读取的文件(默认为路径为上面的路径):");
     32             path += "\";
     33             string path1 = path + Console.ReadLine();
     34             ReadFileToConsole(path1);
     35             Console.WriteLine();
     36             Console.Write("请输入要写入的文件(默认为路径和内容分别为上面的路径和内容):");
     37             string path2 = path + Console.ReadLine();
     38             WriteFile(path1, path2);
     39         }
     40 
     41         /// <summary>
     42         /// 说明:读取本地文件名
     43         /// </summary>
     44         /// <param name="path">目录路径</param>
     45         /// <returns></returns>
     46         /// <remarks>2017-08-28</remarks>
     47         private void ReadFileName(string path)
     48         {
     49             DirectoryInfo dir = new DirectoryInfo(path);
     50             FileInfo[] inf = dir.GetFiles();
     51             foreach (FileInfo finf in inf)
     52             {
     53                 Console.WriteLine(finf);
     54             }
     55         }
     56 
     57         /// <summary>
     58         /// 说明:读取本地文件内容到控制台
     59         /// </summary>
     60         /// <param name="path">文件路径</param>
     61         /// <returns></returns>
     62         /// <remarks>2017-08-28</remarks>
     63         private void ReadFileToConsole(string path)
     64         {
     65             StreamReader sr = new StreamReader(path, Encoding.Default);
     66             String line = null;
     67             while ((line = sr.ReadLine()) != null)
     68             {
     69                 Console.WriteLine(line.ToString());
     70             }
     71 
     72             //关闭流
     73             sr.Close();
     74         }
     75 
     76         /// <summary>
     77         /// 说明:读取本地文件内容写到另一文件中
     78         /// </summary>
     79         /// <param name="path">文件路径</param>
     80         /// <returns></returns>
     81         /// <remarks>2017-08-28</remarks>
     82         private void WriteFile(string path1, string path2)
     83         {
     84             StreamReader sr = new StreamReader(path1, Encoding.Default);
     85             FileStream fs = new FileStream(path2, FileMode.Create);
     86             StreamWriter sw = new StreamWriter(fs);
     87             String line = null;
     88             while ((line = sr.ReadLine()) != null)
     89             {
     90                 sw.Write(line.ToString());
     91             }
     92 
     93             //清空缓冲区
     94             sw.Flush();
     95 
     96             //关闭流
     97             sw.Close();
     98             sr.Close();
     99             fs.Close();
    100         }
    101     }
    102 }

     结果:

  • 相关阅读:
    freopen stdout 真的更快?
    【评分】第二次作业——个人项目实战
    【评分】第二次作业-数独-第一次测试成绩
    姑娘你大胆地往前走——答大二学生XCL之八问
    第二次作业-数独-初步测试日志
    第二次作业——个人项目实战
    关于C#的随机数
    必须展示窗口才能截图怎么办,伪后台截图思路
    Winform 奇怪的 英文字体错乱显示问题
    wpf 解决 WPF SelectionChanged事件向上传递造成重复执行不想执行的函数的问题
  • 原文地址:https://www.cnblogs.com/chenhailing/p/7446983.html
Copyright © 2011-2022 走看看