c#filestream与streamwriter用法

FileStream常用的函数

filestream fs=new filestream(filename,filemode.member,fileaccess,member)

filemodede 的成员有:

成員

文件存在時

文件不存在時

Append

打開文件,流指向文件的末尾,只能與枚舉FileAcess.Write聯合使用

創建一個新文件。只能與枚舉FileAcess.Write聯合使用

Create

刪除該文件,然後創建新文件

創建新文件

CreateNew

拋出異常

創建新文件

Open

打開現有文件,流指向文件開頭

拋出異常

OpenOrCreate

打開文件,流指向文件開頭

創建新文件

Truhncate

打開現有文件,清除其內容。流指向文件開頭,保留文件的初始創建日期。

拋出異常

 

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

    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,则打开文件保留原来数据,如果找不到文件,则创建新文件。

另外StreamWriter还有一个参数,即第三个参数,设定写文件时的编码方式

例如:streamwriter sw = new StreamWriter(rptPath,false,HandlingSettings.Default.CurrentEncoding);

或者:Encoding.ASCII;  Encoding.Unicode; Encoding.UTF7;

与创建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,.net,String)