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|销售代表|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的介绍的更多相关文章
- android.hardware.Camera类及其标准接口介绍
android.hardware.Camera类及其标准接口介绍,API level 19 http://developer.android.com/reference/android/hardwar ...
- 微软在 .NET 3.5 新增了一个 HashSet 类,在 .NET 4 新增了一个 SortedSet 类,本文介绍他们的特性,并比较他们的异同。
微软在 .NET 3.5 新增了一个 HashSet 类,在 .NET 4 新增了一个 SortedSet 类,本文介绍他们的特性,并比较他们的异同. .NET Collection 函数库的 Has ...
- SpringBoot中Redis的set、map、list、value、实体类等基本操作介绍
今天给大家介绍一下SpringBoot中Redis的set.map.list.value等基本操作的具体使用方法 上一节中给大家介绍了如何在SpringBoot中搭建Redis缓存数据库,这一节就针对 ...
- c++string类的简单介绍
#include "iostream" #include "string" using namespace std; /*@author:浅滩 *family: ...
- 基于StringUtils工具类的常用方法介绍(必看篇)
前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅. isEmpty(String str) 是否为空,空格字符为false is ...
- 黄聪:C#类似Jquery的html解析类HtmlAgilityPack基础类介绍及运用
Html Agility Pack下载地址:http://htmlagilitypack.codeplex.com/ Html Agility Pack 源码中的类大概有28个左右,其实不算一个很复杂 ...
- 【转】C#类似Jquery的html解析类HtmlAgilityPack基础类介绍及运用
Html Agility Pack下载地址:http://htmlagilitypack.codeplex.com/ Html Agility Pack 源码中的类大概有28个左右,其实不算一个很复杂 ...
- 云计算仿真软件Cloudsim介绍以及类的功能介绍
一·云计算的介绍 云计算仿真软件,称为CloudSim.它是在离散事件模拟包SimJava上开发的函数库,可在Windows和Linux系统上跨平台运行,CloudSim继承了GridSim的编程模型 ...
- python类的简单介绍
类是面向对象编程的核心, 它扮演相关数据及逻辑的容器角色.它们提供了创建“真实”对象(也就是实例)的蓝图.因为Python 并不强求你以面向对象的方式编程(与Java 不同), 此刻你也可以不学习类. ...
随机推荐
- Windows 10+Ubuntu双系统修复Ubuntu启动引导
U盘启动,联网 $ sudo su sudo add-apt add-apt-repository ppa:yannubuntu/boot-repair apt-get update apt-get ...
- python numpy复制array
numpy快速复制array 前段时间想到一个算法,需要实现array的自我复制,直接上代码,两种复制方式, 整体复制 a=[[10,10,50,50],[10,10,40,50]] np.tile( ...
- 通过cookies信息模拟登陆
import requests # 这个练习演示的是通过传入cookie信息模拟登陆,这样操作的前提是需要预先在浏览器登陆账户抓包得到cookie字段信息 url = "http://www ...
- 经典MSSQL语句大全和常用SQL语句命令的作用
下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL类型包括数据库.表的创建,修改,删除,声明—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML类 ...
- Divisibility by 25 CodeForces - 988E
You are given an integer nn from 11 to 10181018 without leading zeroes. In one move you can swap any ...
- HDU - 1251 统计难题(Trie树)
有很多单词(只有小写字母组成,不会有重复的单词出现) 要统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). 每个单词长度不会超过10. Trie树的模板题.这个题内存把控不好容易MLE. ...
- holtek编程注意事项
1.holtek单片机中断服务函数中函数调用里的参数不能传递地址,不然程序就会跑飞 2.holtek单片机尽量不要函数嵌套很多层,嵌套过多,会导致单片机复位
- goalng导出excel(csv格式)
最近项目中有个小需求,需要将查询结果导出到excel.之间前java比较容易,使用POI很容易就能实现,查了下golang的文档,发现golang下边并没有导出excel的包,但是却有一个encodi ...
- powerdesigner约束名唯一出错的解决办法
powerdesigner中自动生成的约束名有时会因为表的前缀一样而不具有唯一性,这样在生成时就会出错,一般的解决办法有以下两种: 1.模型=>Reference中可以看到当前模型中的所有Ref ...
- oracle游标遍历
--创建存储过程 CREATE OR REPLACE PROCEDURE xxxxxxxxxxx_p (--参数IN表示输入参数,OUT表示输入参数,类型可以使用任意Oracle中的合法类型. is_ ...