除了使用FileStream类读写文本文件,.net还提供了StreamWriter类和StreamReader类专门处理文本文件。这两个类从底层封装了文件流,读写时不用重新编码,提供了更文件的读写方式。

StreamWriter类允许将字符和字符串写入到文件中,不必转换为字节,它处理底层的转换,向FileStream对象写入数据。

一、创建StreamWrite对象

如果已经有了FileStream对象,则可以使用此对象来创建StreamWriter对象:

FileStream fs = new
FileStream("test.txt",FileMode.CreateNew);
StreamWriter sw = new StreamWriter(fs);

也可以直接从文件中创建StreamWriter对象:

StreamWriter sw = new StreamWriter("test.txt",true);

此构造函数中有两个参数,一个是文件名,另一个是布尔值,这个布尔值规定创建对象的方式如下:

如果此值为false,则创建一个新文件,如果存在原文件,则覆盖。
如果此值为true,则打开文件保留原来数据,如果找不到文件,则创建新文件。


创建FileStream对象不同,创建StreamWriter对象不会提供一组类似的选项:除了使用Boolean值添加到文件的末尾或创建新文件之
外,根本没有像FileStream类那样指定FileMode属性的选项。而且,没有设置FileAccess属性的选项,因此总是有对文件的读/写权
限。为了使用高级参数,必须先在FileStream构造函数中指定这些参数,然后在FileStream对象中创建StreamWriter。

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
class Program
{
static void Main(string[]args)
{
   try
   {
    FileStream
aFile = new FileStream(@"c:\123\欢迎.txt",
FileMode.OpenOrCreate);
    StreamWriter
sw = new StreamWriter(aFile);
   
sw.WriteLine("为今后我们之间的进一步合作,");
   
sw.WriteLine("为我们之间日益增进的友谊,");
   
sw.Write("为朋友们的健康幸福,");
   
sw.Write("干杯!朋友!");
   
sw.Close();
   }
   catch (IOException ex)
   {
   
Console.WriteLine(ex.Message);
   
Console.ReadLine();
    return
;
   }
}
}

编译并运行该项目。如果没有发现错误,则项目会很快运行,并关闭。因为我们在控制台上没有显示任何内容,所以在控制台中无法看到程序的执行情况。

这个简单的应用程序演示了StreamWriter类的两个最重要的方法:Write()和WriteLine()。这两个方法具有许多重载的版本,可以完成更高级的文件输出,但是本示例只使用基本的字符串输出。

WriteLine()方法会写入传递给它的字符串,其后跟有换行符。

Write()方法只是把传送给它的字符串写入文件,但不追加换行符,因此可以使用多个Write()语句写入完整的句子或段落。

注意:如果路径不存在,会抛出异常,当然我们这个程序捕获了异常。

C#使用StreamWriter类写入文件文件的更多相关文章

  1. xml文件生成方式一(字符串拼接,将多实体类对象写入xml文件)

    1.xml文件生成,拼接字符串使用StringBuffer或StringBuilder 2.拼接好后写入文件即可,将多个实体类写入xml文件 3.这种方式比较简单,但是操作也比较麻烦 4.下面是我的代 ...

  2. C# 运用StreamReader类和StreamWriter类实现文件的读写操作

    对文件的读写操作应该是最重要的文件操作,System.IO命名空间为我们提供了诸多文件读写操作类,在这里我要向大家介绍最常用也是最基本的StreamReader类和StreamWriter类.从这两个 ...

  3. 【转载】 C#工具类:Csv文件转换类

    CSV是逗号分隔值格式的文件,其文件以纯文本形式存储表格数据(数字和文本).CSV文件由任意数目的记录组成,记录间以某种换行符分隔:每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号 ...

  4. 【.net 深呼吸】写入日志文件

    记录日志,一方面可以把日志写入系统的日志存储中,可在“事件查看器”窗口中查看:如果不喜欢写到系统的日志文件中,也可以写到自己定义的文件中. 其实,日志文件就是文本文件,可能有朋友会想到用写入文本文件的 ...

  5. 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)

    ========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...

  6. log4Net(写入日志文件)

    这里就简单介绍下log4Net对写入日志文件的一些了解,写入数据库类似,就不在一一介绍了. 首先去log4net下载. 然后我们新建一个控制台应用程序,并引入log4net.dll程序集,log4ne ...

  7. java写入excel文件poi

    java写入excel文件 java写入excel文件poi,支持xlsx与xls,没有文件自动创建 package com.utils; import java.io.File; import ja ...

  8. JAVA读取TXT文件、新建TXT文件、写入TXT文件

    1.创建TXT文件 按照正常的逻辑写就好 先定义一个文件给定一个路径——>判断这个路径上这个文件存不存在——>若不存在则建立,try/catch根据程序提示自动生成就好 2.读取TXT文件 ...

  9. C++ 中的模板类声明头文件和实现文件分离后,如何能实现正常编译?

    C++ 中的模板类声明头文件和实现文件分离后,如何能实现正常编译? 这个feature叫做Export Template,即外名模板,它的作用在于使得模板代码可依照C/C++语言习惯,将模板声明和实现 ...

随机推荐

  1. [洛谷P4149][IOI2011]Race

    题目大意:给一棵树,每条边有边权.求一条简单路径,权值和等于$K$,且边的数量最小. 题解:点分治,考虑到这是最小值,不满足可减性,于是点分中的更新答案的地方计算重复的部分要做更改,就用一个数组记录前 ...

  2. 【POJ 2976 Dropping tests】

    Time Limit: 1000MSMemory Limit: 65536K Total Submissions: 13849Accepted: 4851 Description In a certa ...

  3. WebStorm 2017.1.2 汉化破解

    第一步:下载 官方地址: http://www.jetbrains.com/webstorm/ 第二步:破解 安装后第一次打开会弹出一个窗口,选择“License server”,在输入框输入下面的网 ...

  4. 文件排版(codevs 1300)

    题目描述 Description 写电子邮件是有趣的,但不幸的是经常写不好看,主要是因为所有的行不一样长,你的上司想要发排版精美的电子邮件,你的任务是为他编写一个电子邮件排版程序. 完成这个任务最简单 ...

  5. [ CodeVS冲杯之路 ] P1295

    不充钱,你怎么AC? 题目:http://codevs.cn/problem/1295/ 数据很小,直接DFS,加上剪枝 剪枝其实就是判重,首先深度是行下标,这里自带不重复,枚举的列下标,用 f 记录 ...

  6. Relation(NOIP模拟赛)(二分图染色)

    原题: Description 有n个人,编号为1àn,告诉你那些人之间是不友好的.现在,让你将这n个人分成两组,使得每一组之内的人是互相友好的,如果可以分成两组,则输出如何分组的,如果不可以分成两组 ...

  7. 100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)【转】

    转自:http://blog.csdn.net/leixiaohua1020/article/details/8652605 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] ...

  8. FileInputStream读取文件&FileOutputStream写入文件

    概念摘自:http://jingyan.baidu.com/article/5552ef473ab5f2518ffbc98e.html Java的流式输入输出建立在4个抽象类的基础上:InputStr ...

  9. python接口自动化8-参数化【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E ...

  10. Jquery操作属性选择器

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...