C#中流写入类StreamWriter的介绍

C#中流写入类StreamWriter的介绍 (转)

应用FileStream类需要许多额外的数据类型转换工作,十分影响效率。使用StreamWriter类将提供更简单,更方便的操作方式。
   StreamWriter类允许直接将字符和字符串写入文件,一般不针对二进制数据。
类的结构:
public class StreamWriter:TextWriter :实现一个TextWriter,使其以一种特定的编码向流中写入字符。 StreamWriter旨在以一种特定的编码(默认使用UTF8Encoding)输出字符。
构建器:
public StreamWriter (Stream stream):用UTF-8编码及默认缓冲区大小,为指定的流初始化StreamWriter类的一个新实例。 参数stream(可用FileStream类实例代替)要写入的流。 --可利用FileStream更好的控制对文件的操作方式。
public StreamWriter ( string path ):使用默认编码和缓冲区大小,为指定路径上的指定文件初始化 StreamWriter类的新实例。参数path要向其中写入的完整文件路径。path 可以是文件名。
public StreamWriter ( Stream stream, Encoding encoding ):用指定的编码及默认缓冲区大小,为指定的流初始化StreamWriter类的新实例。参数encoding指定要使用的字符编码。

public StreamWriter ( string path, bool append ):使用默认编码和缓冲区大小,为指定路径上的指定文件初始化StreamWriter类的新实例。如果该文件存在,则可以将其改写或向其追加。如果该文件不存在,则此构造函数将创建一个新文件。参数 path 指定要写入的完整文件路径。 append指定确定是否将数据追加到文件。如果该文件存在,并且 append 为 false,则该文件被改写。如果该文件存在,并且 append 为 true,则数据被追加到该文件中。否则,将创建新文件。 
属性
public virtual bool AutoFlush { get; set; }:获取或设置一个值,该值指示 StreamWriter 是否在每次调用 StreamWriter.Write之后,将其缓冲区刷新到基础流。 此属性值强制 StreamWriter 刷新其缓冲区时,为 true;否则,为 false。 
public virtual string NewLine { get; set; }:获取或设置由当前 TextWriter 使用的行结束符字符串。 默认行结束符字符串是回车符后接一个换行符(“\r\n”)。
方法:
public override void Close ():关闭当前的 StreamWriter 对象和基础流。 
public override void Flush ():清理当前编写器的所有缓冲区,并使所有缓冲数据写入基础流。 注意:在写出数据后,必须使用此方法将缓冲中的数据写出到流对应的目标中。
public override void Write(string value):将字符串写入流,参数value 要写入流的字符串。如果value为空,则不写入任何内容。 
public virtual void Write ( string format, params Object[] arg ):使用与 String.Format 相同的语义写出格式化的字符串。参数format格式化字符串。 Arg指定要写入格式化字符串的对象数组。 
public virtual void WriteLine ():将行结束符写入文本流。默认行结束符是后跟换行符的回车符(“\r\n”),但使用 NewLine 属性可以更改此值。
public virtual void WriteLine ( string value ):将后跟行结束符的字符串写入文本流。 参数value指定要写入的字符串。如果 value 为 空引用(在 Visual Basic 中为 Nothing),则仅写入行结束字符。
public virtual void WriteLine ( string format, params Object[] arg ):使用与 Format 相同的语义写出格式化的字符串和一个新行。参数format 格式化字符串。 Arg指定要写入格式化字符串的对象数组。 
范例:
using System;
using System.IO;
using System.Text;
class TestRW
{
    public static void Main(String[] args)
    {
        if (File.Exists(@"c:\MyFile.txt"))
        {
            using (FileStream fs = new FileStream(@"c:\MyFile.txt", FileMode.Append, FileAccess.Write))
            {
                fs.Lock(0, fs.Length);
                StreamWriter sw = new StreamWriter(fs);
                sw.WriteLine("我是最好的,虽然现在不是");
                sw.WriteLine("有信息,不一定会赢,但没有信心,肯定会输");
                sw.WriteLine("我的期待月薪为{0,9:C4},实现年龄为{1,9},成功率{2,9:P2}", new Object[] { 20000, 30, 1 });
                fs.Unlock(0, fs.Length);//一定要用在Flush()方法以前,否则抛出异常。
                sw.Flush();
            }
        }
        else
        {
            Console.WriteLine("文件不存在");
        }
    }
}

string html = "@006|销售代表|[email protected]|客户代表|[email protected]";

      string[] list = html.ToLower().Split(‘|‘);

      string result = "";

      for (int i = 0; i < list.Length; i++)

      {

          if (list.Trim().Contains("@") || list.Trim().Contains("其他"))

          {

          }

          else

          {

              result += list.Trim() + "\r\n";

          }

      }

      StreamWriter sw = new StreamWriter("D:\\abc.xls", false, System.Text.Encoding.UTF8);

      sw.WriteLine(result);

      sw.Close();

时间: 2024-12-28 10:46:27

C#中流写入类StreamWriter的介绍的相关文章

android.hardware.Camera类及其标准接口介绍

android.hardware.Camera类及其标准接口介绍,API level 19 http://developer.android.com/reference/android/hardware/Camera.html

c++string类的简单介绍

#include "iostream" #include "string" using namespace std; /*@author:浅滩 *family:c++中string类的简单介绍 *time:2019.2.12 */ int main() { string s;//string类的创建 /*下述均是string的成员函数*/ s = "123";//=直接进行赋值 cout <<"字符串长度为:"&l

SpringBoot中Redis的set、map、list、value、实体类等基本操作介绍

今天给大家介绍一下SpringBoot中Redis的set.map.list.value等基本操作的具体使用方法想学习分布式.微服务.JVM.多线程.架构.java.python的童鞋,千万不要扫码,否则后果自负~ 上一节中给大家介绍了如何在SpringBoot中搭建Redis缓存数据库,这一节就针对于Redis的具体操作进行介绍. 关于Redis的历史,以及目前的普及程度大家应该都比我还清楚吧.作为key-value的nosql数据库,Redis的功能还是特别强大的. 下面就来介绍一下Redi

Delphi 绘图TCanvas类[3] TPen类参数及介绍

Delphi 绘图TCanvas类[3]  TPen类参数及介绍TPen 主要属性: Color.Width.Style.Mode //Style: 样式 TPenStyle,:psSolid = 0; {实线}psDash = 1; {段线; 要求笔宽<=1}psDot = 2;    {点线; 要求笔宽<=1}psDashDot = 3; {线.点; 要求笔宽<=1}psDashDotDot = 4; {线.点.点; 要求笔宽<=1}psClear = 5; {不可见}psIn

【转】C#类似Jquery的html解析类HtmlAgilityPack基础类介绍及运用

Html Agility Pack下载地址:http://htmlagilitypack.codeplex.com/ Html Agility Pack 源码中的类大概有28个左右,其实不算一个很复杂的类库,但它的功能确不弱,为解析DOM已经提供了足够强大的功能支持,可以跟jQuery操作DOM媲美:) 基础类和基础方法介绍 Html Agility Pack最常用的基础类其实不多,对解析DOM来说,就只有HtmlDocument和HtmlNode这两个常用的类,还有一个 HtmlNodeCol

php类和命名空间介绍,成员方法和类方法,类的继承与方法重写

1. 类和命名空间的介绍 foo.php: <?php // require_once 'lib.php'; // $h = new Hello(); //类的实例 // $h->sayHello(); //实例访问类的方法s// $d = new Desktop();// $d-> work(); // require_once 'Apple/foo.php';  //foo.php的文件位置 // $h = new \jkxy\Hello(); //foo.php的命名空间,在Hel

类的详细介绍

类       这个概念,学过java的人们肯定不陌生.因为java本来就是用类的思想实现的.           我在一开始学类和对象的时候,总是问别人:为什么要有类这个语法?           而他们总是回答我: 因为类这个东西,是人们写着写着代码而逐渐产生的一种东西.我也不知道这样说对不对,反正他们说c++难就难在这块上面,就像继承与派生,都是人们通过生活演化而来的. 1.类和对象的定义 类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起.      

OC基础--常用类的初步介绍与简单实用之集合类

集合类的异同点 一.NSArray\NSMutableArray *有序 *快速创建(只有不可变数组可以):@[obj1, obj2, obj3]; *快速访问元素:数组名[i] *只能存放对象 二.NSSet\NSMutableSet *无序 *只能存放对象 三.NSDictionary\NSMutableDictionary *无序 *快速创建(只有不可变数组可以):@{key1 : value1, key2 : value2,...} *快速访问元素:字典名[key] *只能存放对象 四.

软件开发工程师(JAVA)中级考试大纲-----四(四)Log4J的原理及配置;Log4J常用的API;在项目中应用日志框架Log4J关键类和接口介绍;Java properties配置文件log

log4j Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 1定义 log4j--log for java(java的日志) 在强调可重用组件开发的今天,除了