返回首页
当前位置: 主页 > 网络编程 > .Net实例教程 >

System.IO使用教程全面总结

时间:2011-04-08 15:45来源:知行网www.zhixing123.cn 编辑:麦田守望者

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;

namespace TestWebClientClass
{
class Program
{
static void Main(string[] args)
{
WebClient client = new WebClient();
client.BaseAddress = "http://www.microsoft.com:";
string data = client.DownloadString("office");
Console.WriteLine(data);

//创建一个文本文件,把返回的字符串data写入文本文件
string m_path = @"c: ile.txt";
//File.Create(m_path); //此方法的返回类型是FileStream File.Create方法在这里会产生异常:线程有异常
File.CreateText(m_path); //File.CreateText在这里不会产生异常
StreamWriter sw = new StreamWriter(m_path, false);
//StreamWriter sw = File.CreateText(m_path);这一条语句和上面2条语句等价
sw.Write(data);
sw.Close();//必须关闭才会把字符串写入文件。
Console.WriteLine("写入成功");
Console.ReadLine();

////和上面的作用一样
//StreamWriter sw = new StreamWriter( @"c: ile.txt", false);//为false则改写,为true则追加在文件后面,true和false只决定是否改写或追加,与文件存不存在没有关系。
//sw.Write(data);
//sw.Close();//必须关闭才会把字符串写入文件。
////下面是为了测试FileInfo类而加进来的代码
//FileInfo fi = new FileInfo(@"c: ile.txt");
//Console.WriteLine("写入成功");
//Console.WriteLine(fi.Extension);//.txt
//Console.WriteLine (fi.Name);// file.txt
//Console.WriteLine (fi.Length );// 3741
//Console.WriteLine (fi.ToString());//c: ile.txt
//Console .WriteLine (fi.FullName );//c: ile.txt
//Console.WriteLine(fi.Exists);//true
//Console.ReadLine();

////和上面的作用一样
//File.WriteAllText(@"c: ile01.txt", data, Encoding.UTF8);//创建新文件,如果文件存在则改写文件
////File.Encrypt(@"c: ile01.txt");//加密文件,加密后文件成绿色
////File.Decrypt(@"c: ile01.txt");//加密文件,解密后文件恢复原来的颜色
//Console.WriteLine("写入成功");
//Console.ReadLine();

 

//下面的示例在指定路径中创建一个文件,将一些信息写入该文件,再从文件中读取。
string path = @"c: empMyTest.txt";
try
{
// Delete the file if it exists.
if (File.Exists(path))
{
// Note that no lock is put on the
// file and the possibliity exists
// that another process could do
// something with it between
// the calls to Exists and Delete.
File.Delete(path);
}
// Create the file.
using (FileStream fs = File.Create(path))
{
Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
// Add some information to the file.
fs.Write(info, 0, info.Length);

}
// Open the stream and read it back.
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
}
catch (Exception Ex)
{
Console.WriteLine(Ex.ToString());
}
 

/*---------------------知识扩充---------------------------------*/
//File.Create(string Path )//创建文件,此方法的返回类型是FileStreamv,如果指定的文件不存在,则创建该文件;如果存在并且不是只读的,则将改写其内容。
//File.CreateText(string Path ) //创建或打开一个文件用于写入UTF-8编码的文本 ,此方法的返回类型是StreamWriter.如果由 path 指定的文件不存在,则创建该文件。如果该文件确实存在,则改写其内容。允许其他线程在文件打开后读取该文件。
//File.CreateText方法,相当于调用StreamWriter类的构造函数,所以指定路径的文件可以存在也可以没有存在
//File.AppendAllText(string Path ,string contents);//将指定的字符串追加到文件中,如果文件还不存在则创建该文件
//File.AppendAllText(string Path,string contents,Encoding encoding );
//File.Open (string Path ,FileMode mode) //此方法的返回类型是FileStream
//File.Open (string Path ,FileMode mode,FileAccess access)
//File.Copy (这里面有两个参数或三个参数)//实现文件复制
//File.Encrypt(string Path)//将某个文件加密,使得只有加密该文件的帐户才能将其解密
//File.Decrypt (string Path)//解密由当前帐户用Systen.IO.File.Encrtpt(System.String)方法加密的文件
//File.Delete (string Path )//删除指定的文件。如果指定的文件不存在,则不引发异常
//File.Exists (string Path )//确定指定的文件是否存在,返回值为bool
//File.Move(string sourceFileName,string destFileName)//移动文件夹,并可为文件指定新名字
//File.OpenRead(string Path) //打开现有文件以进行读取 此方法的返回类型是FileStream
//File.OpenWrite(string Path)//打开现有文件以进行写入 此方法的返回类型是FileStream
//File.OpenText (string Path)//返回类型为SteamReader,打开现有UTF-8编码文本文件以进行读取,此方法相当于掉用StreamReader的构造函数,所以要求指定路径的文件必须已经存在,否则产生异常
//File.ReadAllText (string Path ) //返回值为string,打开一个文件,使用指定的 编码读取文件的所有行,然后关闭文件
//File.ReadAllText (string Path,Encoding encoding )

}
}
}

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace StreamReader类
{
class Program
{
//static void Main(string[] args)
//{

//}
public static void Main()
{
string path = @"c: empMyTest.txt";
try
{
if (File.Exists(path))
{
File.Delete(path);
}

using (StreamWriter sw = new StreamWriter(path))//path 参数可以是文件名,包括统一命名约定 (UNC) 共享上的文件。如果此文件已存在,将覆盖它;否则,将创建一个新文件。
{ //不要求 path 参数必须是存储在磁盘上的文件;它可以是系统中支持通过流进行访问的任何部分。
sw.WriteLine("This"); //WriteLine方法是继承TextWriter基类的
sw.WriteLine("is some text");
sw.WriteLine("to test");
sw.WriteLine("Reading");
}

using (StreamReader sr = new StreamReader(path))
{
while (sr.Peek() >= 0) //Peek方法返回下一个可用的字符,但不使用它。次方法的返回值:下一个要读取的字符,如果没有更多的可用字符或此流不支持查找,则为 -1。
{
Console.WriteLine(sr.ReadLine()); //ReadLine方法是重写基类TextRead的
}
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}

}
}

/*
StreamReader.ReadLine 方法 :从当前流中读取一行字符并将数据作为字符串返回。此方法的返回值:输入流中的下一行;如果到达了输入流的末尾,则为空引用(在VB中为Nothing,C#中为null)。
----继承关系:
System.Object
System.MarshalByRefObject
System.IO.TextReader
System.IO.StreamReader
System.IO.StringReader

----继承关系:
System.Object
System.MarshalByRefObject
System.IO.TextWriter
System.CodeDom.Compiler.IndentedTextWriter
System.IO.StreamWriter
System.IO.StringWriter
System.Web.HttpWriter
System.Web.UI.HtmlTextWriter

StreamReader的构造函数必须要求指定文件必须已经存在,如果不存在则会发生异常
StreamWriter的构造函数不要求指定的文件必须已经存在,如果不存在则会创建该文件,如果存在则会改写或者追加,这要看你用那一个构造函数而定
StreamReader中的Close,Peek,Read,ReadLine,ReadToEnd都是重写基类TextRead中的虚拟方法
StreamWriter中的Close,Flush,Write是重写基类TextWriter中的虚拟方法,而WriteLine是继承基类TextWriter(虚拟的)中的方法
一般在用完一个流之后要用Close关闭这个流,例如StreamReader和StreamWriter


*/

 

//using System;
//using System.IO;
//using System.Text;

//class Test
//{
// public static void Main()
// {
// string path = @"c: empMyTest.txt";

// try
// {

// // Delete the file if it exists.

------分隔线----------------------------
标签(Tag):ASP.NET asp.Net实例教程 asp.net源代码 asp.net基础教程
------分隔线----------------------------
推荐内容
猜你感兴趣