c#关于输入输出流的讲解(5)

一 .NET Framework 类库的System.IO 命名空间     

System.IO 命名空间包含允许读写文件和数据流的类型以及提供基本文件和目录支持的类型。


 二 C#文件读写之FileStream

  1. (FileStream fs1 = File.Open("c://test.txt", FileMode.Open));

  FileMode.Open 直接用FileStream类打开文件c://test.txt"。

  2. (FileStream fs2 = File.Open("c://test.txt", FileMode.Append, FileAccess.Write));

  FileMode.Append,以追加的方式打开文件"c://test.txt",将某些内容写到"c://test.txt"里。

  3.(FileStream fs3 =File.Open("c://test.txt", FileMode.Truncate, FileAccess.ReadWrite, FileShare.Read)).

  FileMode.Truncate的意思是将文件打开清空里面的内容后再对文件进行操作。

  4. FileStream MyFileStream1 = new FileStream(@"c:/Testing.txt", FileMode.Create);

  这个方法的意思是创建一个可以读写的文件,并且可以允许其他人读取文件的内容。

三  Stream是一个很大类的,在读写文件的时候,可以通过不同的流进行专业的数据读写.

 

 下面的代码是利用输入输出流实现stream 和byte之间的转换

public byte[] StreamToBytes(Stream stream) 

    byte[] bytes = new byte[stream.Length]; 
    stream.Read(bytes, 0, bytes.Length); 
    // 设置当前流的位置为流的开始 
    stream.Seek(0, SeekOrigin.Begin); 
    return bytes; 


/// 将 byte[] 转成 Stream 

public Stream BytesToStream(byte[] bytes) 

    Stream stream = new MemoryStream(bytes); 
    return stream; 



/// 将 Stream 写入文件 

public void StreamToFile(Stream stream,string fileName) 

    // 把 Stream 转换成 byte[] 
    byte[] bytes = new byte[stream.Length]; 
    stream.Read(bytes, 0, bytes.Length); 
    // 设置当前流的位置为流的开始 
    stream.Seek(0, SeekOrigin.Begin); 
    // 把 byte[] 写入文件 
    FileStream fs = new FileStream(fileName, FileMode.Create); 
    BinaryWriter bw = new BinaryWriter(fs); 
    bw.Write(bytes); 
    bw.Close(); 
    fs.Close(); 


/// 从文件读取 Stream 

public Stream FileToStream(string fileName) 
{             
    // 打开文件 
    FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); 
    // 读取文件的 byte[] 
    byte[] bytes = new byte[fileStream.Length]; 
    fileStream.Read(bytes, 0, bytes.Length); 
    fileStream.Close(); 
    // 把 byte[] 转换成 Stream 
    Stream stream = new MemoryStream(bytes); 
    return stream; 


     byte[] bytes = System.Text.UTF8Encoding.UTF8.GetBytes(XmlContent); 

  string XmlContent = System.Text.UTFEncoding.UTF8.GetString(bytes);

从字符串到流Stream

byte[] buffer = System.Text.Encoding.Unicode.GetBytes("faint"); 
MemoryStream stream = new MemoryStream(buffer);

MemoryStream ms = new MemoryStream(System.Text.Encoding.Default.GetBytes(AObjStr));

 

posted on 2015-04-20 10:08  石家名  阅读(211)  评论(0编辑  收藏  举报