输出到文件的一种方式

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

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

 1 while ((s = sr.ReadLine()) != null)
 2             {   
 3                 ct=s.Split('\t');
 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("\t1");
25                     if(n%numoflines!=0)
26                         w.Write("\r\n");
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 类的新实例。 如果该文件存在,则可以将其覆盖或向其追加。 如果该文件不存在,则此构造函数将创建一个新文件。
posted on 2014-03-20 01:52  13m0n  阅读(531)  评论(0编辑  收藏  举报