文件读写操作

ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
using System.IO;
/*从文本文件中读或者写文本时,首先需创建一个与文件相关的StreamReader或者StreamWriter对象
 每一个StreamReader或StreamWriter对象都与一种字符编码方式相关。默认UTF8Encoding
*/
class FileOperate
{
    
public static  string content="";
    
public static  StreamReader sr=null;
    
public static StreamWriter sw=null;
    
//读取文本时,有许多方法可以创建与文件名相关的Streamreader对象   
    /// <summary>
    
///方法一: 从文件名直接创建
    
/// </summary>
    public void ReadFromFileName()
    {
        
        
try
        {
            sr
=new StreamReader ("TestFile.txt");
            
string txt="";
            
while((txt=sr.ReadLine())!=null)
            {
                content
+=txt;
            }
            Console.WriteLine (
"----ReadFromFileName------");
            Console.WriteLine (content);
        }
        
catch(Exception ex)
        {
            Console.WriteLine (ex.Message);
        }
        
finally
        {
            sr.Close ();
        }
        
    }
    
/// <summary>
    
///方法二: 使用File类或者FileInfo类的OpenText方法创建
    
/// </summary>
    public void ReadUseFileOrFileInfo()
    {
        
        
try
        {
         FileInfo fi
=new FileInfo ("TestFile.txt");
         sr
=fi.OpenText();
         content
="";
         
while(!sr.EndOfStream)
         {
            content
+=sr.ReadLine();
         }
            Console.WriteLine (
"----ReadUseFileOrFileInfo------");
            Console.WriteLine (content);        
        }
        
catch(Exception ex)
        {
            Console.WriteLine (ex.Message);
        }
        
finally
        {
            sr.Close ();
        }
        
    }
    
    
/// <summary>
    
/// 方法3:通过FileStream对象创建
    
/// </summary>
    public void ReadThroughFileStream()
    {
        
//打开文件 只读
        FileStream fs1=new FileStream("TestFile.txt",FileMode.Open,FileAccess.Read );
        
//打开文件 读写
        
//FileStream fs2=File.Open ("TestFile.txt",FileMode.Open ,FileAccess.ReadWrite);
        
//打开文件 读写
        
//FileStream fs3=File.Create("TestFile.txt");
        
//打开文件 只读
        
//FileStream fs4=File.OpenRead("TestFile.txt");
            
        
try
        {
         sr
=new StreamReader (fs1);
         content
="";
         
while(!sr.EndOfStream)
         {
            content
+=sr.ReadLine();
         }
         Console.WriteLine (
"----ReadThroughFileStream------");
         Console.WriteLine (content);    
        }
        
catch(Exception ex)
        {
          Console.WriteLine (ex.Message);
        }
        
finally
        {
            fs1.Close ();
            sr.Close ();
        }
    }
    
//写入文件 三种方式
    /// <summary>
    
/// 方法一:通过文件名创建
    
/// </summary>
    public void WriteFromFileName()
    {
        
try
        {
            sw
=new StreamWriter("TestFile.txt");
            Console.WriteLine (
"Input Write File's Content:");
            
string lines=Console.ReadLine ();
            sw.WriteLine(lines);
        }
        
catch(Exception ex)
        {
            Console.WriteLine (ex.Message );
        }
        
finally
        {
            sw.Close ();
        }
    }
    
/// <summary>
    
/// 文件写入方法二:使用File类或者FileInfo类的CreateText或AppendText方法来创建
    
/// AppendText方法:对于文件内容进行追加 CreateText方法:会删除已经存在的文件
    
/// 缺点:只能创建支持UTF8Encoding的StreamWriter对象
    
/// </summary>
    public void WriteUseFileOrFileInfo()
    {
      
//File类的CreateText方法
      StreamWriter sw1=File.CreateText("TestFile.txt");
      sw1.WriteLine(
"File类的CreateText方法");
      sw1.Close ();
     
//FileInfo CreateText 
      FileInfo fi1=new FileInfo ("TestFile.txt");
      StreamWriter sw2
=fi1.CreateText();
      sw2.WriteLine(
"FileInfo CreateText ");
      sw2.Close ();
      
//File类的AppendText方法
      StreamWriter sw3=File.AppendText("TestFile.txt");
      sw3.WriteLine(
"File类的AppendText方法");
      sw3.Close ();
      
//FileInfo 的AppendText
      FileInfo fi2=new FileInfo ("TestFile.txt");
      StreamWriter sw4
=fi2.AppendText();
      sw4.WriteLine(
"FileInfo 的AppendText");
      sw4.Close ();
    }
    
/// <summary>
    
/// 通过FileStream对象来创建
    
/// </summary>
    public void WriteThroughFileStream()
    {
    
        
//打开文件 只写
        FileStream fs1=new FileStream("TestFile.txt",FileMode.Open,FileAccess.Write);
        StreamWriter sw1
=new StreamWriter(fs1);
        sw1.WriteLine(
"通过FileStream对象来创建");      
        sw1.Close ();
        fs1.Close ();
        
//打开文件 读写
        FileStream fs2=File.Open ("TestFile.txt",FileMode.Open ,FileAccess.ReadWrite);
        StreamWriter sw2
=new StreamWriter(fs2);
        sw2.WriteLine(
"通过File.Open创建FileStream对象");       
        sw2.Close ();
        fs2.Close ();
        
//打开文件 读写
        FileStream fs3=File.Create("TestFile.txt");
        StreamWriter sw3
=new StreamWriter(fs3);
        sw3.WriteLine(
"通过File.Create创建FileStream对象");              
        sw3.Close ();
        fs3.Close ();
        
//打开文件 只写
        FileStream fs4=File.OpenWrite("TestFile.txt"); 
        StreamWriter sw4
=new StreamWriter(fs4);
        sw4.WriteLine(
"通过File.OpenWrite创建FileStream对象");            
        sw4.Close ();
        fs4.Close ();
    }
    
    
/// <summary>
    
/// 二进制文件读写
    
/// </summary>
    
    
public void ByteReadWrite()
    {
             FileStream fs 
= new FileStream("TestFile.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);//创建文件 
             StreamWriter sw = new StreamWriter(fs);
              
// 以文本方式写一个文件
             sw.WriteLine("Hello, World");
             sw.WriteLine(
"你好吗?");
             sw.WriteLine(
"我很好!");
             sw.WriteLine(
"嘿嘿,示例好傻!");
             sw.Flush();     
//清理缓冲区
            StreamReader sr = new StreamReader(fs);
            sr.BaseStream.Seek(
0, SeekOrigin.Begin);//定位到流的开始位置 
            string str=string.Empty;
            
while (!sr.EndOfStream)  //未到文件流结尾
            {
                 str
+= sr.ReadLine();
            }
            BinaryReader br 
= new BinaryReader(fs);
            br.BaseStream.Seek(
0, SeekOrigin.Begin);//定位到流的开始位置 
            Byte b = new Byte();
            
while (br.PeekChar() > -1)//定位到下一个字符
            {
                b 
+= br.ReadByte();
            }
             
//关闭文件流
             sw.Close();
             br.Close();
             sr.Close();
             fs.Close();

   }
    
    
public static void Main(string[] args)
    {
        FileOperate ofile
=new FileOperate();
        
//读取文件写入文件                
        ofile.WriteFromFileName();
        ofile.ReadFromFileName();
        ofile.WriteUseFileOrFileInfo();
        ofile.ReadUseFileOrFileInfo();
        ofile.WriteThroughFileStream();
        ofile.ReadThroughFileStream();
        ofile.ByteReadWrite();
        Console.ReadLine();
    }

}

转载于:https://www.cnblogs.com/hubcarl/archive/2009/07/13/1522541.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值