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|销售代表|4010200@008|客户代表|4010200@011";
      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();

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

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

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

  2. 微软在 .NET 3.5 新增了一个 HashSet 类,在 .NET 4 新增了一个 SortedSet 类,本文介绍他们的特性,并比较他们的异同。

    微软在 .NET 3.5 新增了一个 HashSet 类,在 .NET 4 新增了一个 SortedSet 类,本文介绍他们的特性,并比较他们的异同. .NET Collection 函数库的 Has ...

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

    今天给大家介绍一下SpringBoot中Redis的set.map.list.value等基本操作的具体使用方法 上一节中给大家介绍了如何在SpringBoot中搭建Redis缓存数据库,这一节就针对 ...

  4. c++string类的简单介绍

    #include "iostream" #include "string" using namespace std; /*@author:浅滩 *family: ...

  5. 基于StringUtils工具类的常用方法介绍(必看篇)

    前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅. isEmpty(String str) 是否为空,空格字符为false is ...

  6. 黄聪:C#类似Jquery的html解析类HtmlAgilityPack基础类介绍及运用

    Html Agility Pack下载地址:http://htmlagilitypack.codeplex.com/ Html Agility Pack 源码中的类大概有28个左右,其实不算一个很复杂 ...

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

    Html Agility Pack下载地址:http://htmlagilitypack.codeplex.com/ Html Agility Pack 源码中的类大概有28个左右,其实不算一个很复杂 ...

  8. 云计算仿真软件Cloudsim介绍以及类的功能介绍

    一·云计算的介绍 云计算仿真软件,称为CloudSim.它是在离散事件模拟包SimJava上开发的函数库,可在Windows和Linux系统上跨平台运行,CloudSim继承了GridSim的编程模型 ...

  9. python类的简单介绍

    类是面向对象编程的核心, 它扮演相关数据及逻辑的容器角色.它们提供了创建“真实”对象(也就是实例)的蓝图.因为Python 并不强求你以面向对象的方式编程(与Java 不同), 此刻你也可以不学习类. ...

随机推荐

  1. Eclipse将java项目导出可执行的jar文件

    1.在java项目上右键,点击“Export”,会弹出一个选择导出的文件类型 版权声明:本文为博主原创文章,未经博主允许不得转载. 原文地址:https://www.cnblogs.com/poter ...

  2. 阿里大鱼短信发送 FOR DT

    //增加了参数$action 来标志发送的是什么短信 注册短信 验证码短信 提示短信等 function send_sms($mobile, $message, $word = 0, $time = ...

  3. 基于网站地址URL传输session信息

    在php的学习中,会话是我们常常用到的,那今天我们就来详细讲讲会话中的session: 一.session的工作机制:当开启session后,服务器会在服务器中保存session文件,然后再浏览器保存 ...

  4. SpringMVC总结以及在面试中的一些问题.

    1.简单的谈一下SpringMVC的工作流程? 流程 1.用户发送请求至前端控制器DispatcherServlet 2.DispatcherServlet收到请求调用HandlerMapping处理 ...

  5. Linux中断体系结构

    1.中断处理体系结构 Linux内核将所有中断统一编号,使用一个irq_desc结构数组来描述这些中断. 数组声明在/linux/kernel/irq/handle.c中,其中#define NR_I ...

  6. selenium2元素定位Xpath和cssSelector

    Selenium2中元素有以下几种定位方法, 常用的有Id,xpath, cssSelector XPATH介绍: XPATH是一种选择器 XPATH在firefox中用firepath验证 XP ...

  7. HBase0.94.2-cdh4.2.0需求评估测试报告1.0之四

    第二组:文件存储读过程记录 第一组:一个列,四个分区,随机ID 测试列和分区 测试程序或命令 导入文件大小(Mb) 导入文件个数(个) 是否触发flush事件(布尔) 是否触发compact事件(布尔 ...

  8. luogu1725 琪露诺

    单调队列 #include <iostream> #include <cstdio> using namespace std; int n, l, r, dp[400005], ...

  9. 如何解决自定义404页面在IE等浏览器中无法显示问题

    网站设置自定义404页面之后(如何在IIS下正确设置404页面?),如无法在浏览器中正常显示,可能是以下原因: 1.404页面文件权限设置错误 我们需要为404页面文件添加上用户everyone的可读 ...

  10. [Oracle] Lob介绍

    [Oracle] Lob介绍   像Oracle这种关系型数据库,比较擅长处理结构化的数据,那么对于非结构化的数据,Oracle是怎么处理和存储的呢?Lob (Large Object)是Oracle ...