zoukankan      html  css  js  c++  java
  • 输出到文件的一种方式

      还是这个拆分词条的工具,最后要输出到txt里,每2K条一个文件.

      这是我实现输出到文件的一种方式:

     1 while ((s = sr.ReadLine()) != null)
     2             {   
     3                 ct=s.Split('	');
     4                 if (ct.Length <= 2) break;
     5                 if ((n++) % numoflines == 0)
     6                 {
     7                     t++;
     8                     path = src + t + ".txt";
     9                     using (StreamWriter sw = File.CreateText(path))
    10                     {
    11                         // sw.Write(s);
    12                     }
    13                 }
    14 
    15                 FileInfo finfo = new FileInfo(path);
    16                 using (FileStream fs = finfo.OpenWrite())
    17                 {
    18                     StreamWriter w = new StreamWriter(fs);
    19 
    20                     w.BaseStream.Seek(0, SeekOrigin.End);
    21                     //if (n % numoflines == 0)
    22                         w.Write(s);
    23                     if (addone==1)
    24                         w.Write("	1");
    25                     if(n%numoflines!=0)
    26                         w.Write("
    ");
    27                     w.Flush();
    28                     w.Close();
    29 
    30                 }
    31 
    32             }

       *numoflines是可以设置的每个文件的行数;

      *StreamWriter sw = File.CreateText(path) 创建一个指定路径的文件

      *sw.Write(s); 输出s到文件中,但是要覆盖文件中原来的内容;

      *FileInfo 初始化 FileInfo 类的新实例,它作为文件路径的包装。

      *OpenWrite() 创建只写 FileStream;

       

      *BaseStream.Seek(0, SeekOrigin.End); 这部分参见知道网友iceser的回答

        *第一个参数为a,第二个为b;
        *b为文件中绝对位置
          *SeekOrigin.End:文件结尾;
          *SeekOrigin.Begin:文件开始
          *SeekOrogin.Current:文件当前位置;
        *a为相对于b的位置,可正可负.
        *我这里的表示就是w的输出在文件的结尾;
      *w.write("");写入balabala
      
    *w.Flush():清理当前编写器的所有缓冲区,并使所有缓冲数据写入基础流。
    *w.Close():关闭当前的 StreamWriter 对象和基础流.
      

     

    部分构造函数:
    *StreamWriter(Stream, Encoding):用指定的编码及默认缓冲区大小,为指定的流初始化 StreamWriter类的新实例。
    *StreamWriter(String, Boolean):如果该文件存在,则可以将其覆盖或向其追加。 如果该文件不存在,则此构造函数将创建一个新文件。
      *若要追加数据到该文件中,则为 true;若要覆盖该文件,则为 false 如果指定的文件不存在,该参数无效,且构造函数将创建一个新文件。 
    *StreamWriter(String, Boolean, Encoding, Int32):使用指定编码和缓冲区大小,为指定路径上的指定文件初始化StreamWriter 类的新实例。 如果该文件存在,则可以将其覆盖或向其追加。 如果该文件不存在,则此构造函数将创建一个新文件。
  • 相关阅读:
    [SCOI2007]降雨量
    [SCOI2005]骑士精神
    LUOGU P1342 请柬
    spfa的复活
    Luogu P2396 yyy loves Maths VII
    Luogu P2801 教主的魔法
    HEOI2012 采花
    USACO05DEC Cleaning Shifts
    CF438D The Child and Sequence
    Codechef October Challenge 2019 Div.2
  • 原文地址:https://www.cnblogs.com/Fadinglemon/p/3612756.html
Copyright © 2011-2022 走看看