.Net 操作文本文件
来源:互联网 发布:vsftpd 指定端口 编辑:程序博客网 时间:2024/05/11 03:25
读取和写入文本文件
Read a Text File 的这篇文章部分描述如何使用 StreamReader 类来读取文本的文件。Write a Text File (Example 1),和 Write a Text File (Example 2) 在各节说明了如何使用 StreamWriter 类来向文件写入文本。读取文本文件
若要打开、 读取,和来关闭文本文件,下面的代码使用 StreamReader 类。您可以将文本文件的路径传递给 StreamReader 构造函数自动打开该文件。ReadLine 方法读取的每一行文本,并读取递增到下一行将文件指针。当 ReadLine 方法到达文件结尾时, 它将返回空引用。- 在记事本中创建示例文本文件。若要这样做,请按照下列步骤操作:
- 在记事本中粘贴以下文本:
hello world
- 将文件另存为 Sample.txt。
- 在记事本中粘贴以下文本:
- 启动 Microsoft Visual Studio。
- 在 文件 菜单上指向 新建,然后单击 项目。
- 在 项目类型 框中,单击 Visual C# 项目,然后单击 模板 下的 控制台应用程序
注意在 Visual Studio 2005 或 Visual Studio 2008 中在 项目类型 框中,单击 Visual C#,然后单击在 模板 下的 控制台应用程序。 - Class1.cs 文件的开头添加以下代码:Visual Studio 2005 或 Visual Studio 2008,默认的文件的 注释 是 Program.cs。
using System.IO;
- 将下面的代码添加到 Main 方法:
String line;try {//Pass the file path and file name to the StreamReader constructorStreamReader sr = new StreamReader("C:\\Sample.txt");//Read the first line of textline = sr.ReadLine();//Continue to read until you reach end of filewhile (line != null) {//write the lie to console windowConsole.WriteLine(line);//Read the next lineline = sr.ReadLine();}//close the filesr.Close();Console.ReadLine();}catch(Exception e){Console.WriteLine("Exception: " + e.Message);} finally {Console.WriteLine("Executing finally block.");}
- 在 调试 菜单上单击编译并运行该应用程序,请 开始。若要关闭控制台窗口按 ENTER。控制台窗口将显示 Sample.txt 文件中的内容
Hello world
写文本文件 (示例 1)
下面的代码使用 StreamWriter 类打开、 写入,和以关闭该文本文件。StreamReader 类以类似方式您可以将文本文件的路径传递给该 StreamWriter 构造函数,以自动打开该文件。WriteLine 方法写入文本文件的完整文本行。- 启动 Visual Studio。
- 在 文件 菜单上指向 新建,然后单击 项目。
- 在 项目类型 框中,单击 Visual C# 项目,然后单击 模板 下的 控制台应用程序。
注意 在 Visual Studio 2005 或 Visual Studio 2008 中在 项目类型 框中,单击 Visual C#,然后单击 模板 下的 CLR 控制台应用程序。 - Class1.cs 文件的开头添加以下代码:
using System.IO;
- 将下面的代码添加到 Main 方法:
try {//Pass the filepath and filename to the StreamWriter ConstructorStreamWriter sw = new StreamWriter("C:\\Test.txt");//Write a line of textsw.WriteLine("Hello World!!");//Write a second line of textsw.WriteLine("From the StreamWriter class");//Close the filesw.Close();}catch(Exception e){Console.WriteLine("Exception: " + e.Message);}finally {Console.WriteLine("Executing finally block.");}
- 在 调试 菜单上单击编译并运行该应用程序,请 开始。此代码创建的在文本编辑器 (如记事本) 的驱动器 c。 打开 Test.txt 上名为 Test.txt 文件。 Test.txt 包含两行文字:
Hello World!!From the StreamWriter class
写文本文件 (示例 2)
下面的代码使用 StreamWriter 类打开、 写入,和以关闭该文本文件。与前面的示例不同此代码将两个附加参数传递给构造函数。第一个参数是该文件的路径和文件的文件名。第二个参数 为 True,指定打开该文件中追加模式。如果您在第二个参数指定 False,该文件的内容将覆盖每次运行该代码。第三个参数指定 Unicode,以便 StreamWriter 对该文件以 Unicode 格式进行编码。 您还可以指定下列编码方法的第三个参数:- ASC11
- Unicode
- UTF7
- UTF8
- 启动 Visual Studio。
- 在 文件 菜单上指向 新建,然后单击 项目。
- 在 项目类型 框中,单击 Visual C# 项目,然后单击 模板 下的 控制台应用程序
注意在 Visual Studio 2005 或 Visual Studio 2008 单击 Visual C# 在 项目类型,然后单击模板 下的 控制台应用程序 - Class1.cs 文件的开头添加以下代码:Visual Studio 2005 或 Visual Studio 2008,默认的文件的 注释 是 Program.cs。
using System.IO;using System.Text;
- 将下面的代码添加到 Main 方法:
Int64 x;try {//Open the FileStreamWriter sw = new StreamWriter("C:\\Test1.txt", true, Encoding.ASCII);//Writeout the numbers 1 to 10 on the same line.for(x=0; x < 10; x++){sw.Write(x);}//close the filesw.Close();}catch(Exception e){Console.WriteLine("Exception: " + e.Message);}finally {Console.WriteLine("Executing finally block.");}
- 在 调试 菜单上单击编译并运行该应用程序,请 开始。此代码创建一个命名 Test1.txt 为驱动器 c。 打开 Test1.txt 在文本编辑器 (如记事本) 上的文件。Test1.txt 包含单行文本:
0123456789
完成代码列表
- 读取文本文件
//Read a Text Fileusing System;using System.IO;namespace readwriteapp{class Class1{[STAThread]static void Main(string[] args){String line;try {//Pass the file path and file name to the StreamReader constructorStreamReader sr = new StreamReader("C:\\Sample.txt");//Read the first line of textline = sr.ReadLine();//Continue to read until you reach end of filewhile (line != null) {//write the lie to console windowConsole.WriteLine(line);//Read the next lineline = sr.ReadLine();}//close the filesr.Close();Console.ReadLine();}catch(Exception e){Console.WriteLine("Exception: " + e.Message);}finally {Console.WriteLine("Executing finally block.");}}}}
- 写文本文件 (版本 1)
//Write a text file - Version-1using System;using System.IO;namespace readwriteapp{class Class1{[STAThread]static void Main(string[] args) {try {//Pass the filepath and filename to the StreamWriter ConstructorStreamWriter sw = new StreamWriter("C:\\Test.txt");//Write a line of textsw.WriteLine("Hello World!!");//Write a second line of textsw.WriteLine("From the StreamWriter class");//Close the filesw.Close();}catch(Exception e){Console.WriteLine("Exception: " + e.Message);}finally {Console.WriteLine("Executing finally block.");}}}}
- 写文本文件 (版本 2)
//Write a text file - Version 2using System;using System.IO;using System.Text;namespace readwriteapp{class Class1{[STAThread]static void Main(string[] args) { Int64 x;try {//Open the FileStreamWriter sw = new StreamWriter("C:\\Test1.txt", true, Encoding.ASCII);//Writeout the numbers 1 to 10 on the same line.for(x=0; x < 10; x++){sw.Write(x);}//close the filesw.Close();}catch(Exception e){Console.WriteLine("Exception: " + e.Message);}finally {Console.WriteLine("Executing finally block.");}}}}
疑难解答
对于所有的文件操作,它是一个良好的编程习惯来包装中 一次尝试-catch-finally 程序块来处理错误和异常代码。专门,您可能希望释放最后块中文件的句柄,使该文件未被无限期锁定。一些可能的错误包括一个文件不存在或已在使用中的文件。
http://support.microsoft.com/kb/816149/zh-cn
用filestream 读和写.
/// <summary> /// 复制文件 /// </summary> /// <param name=\"fromFile\">要复制的文件</param> /// <param name=\"toFile\">要保存的位置</param> /// <param name=\"lengthEachTime\">每次复制的长度</param> private void CopyFile(string fromFile, string toFile, int lengthEachTime) { FileStream fileToCopy = new FileStream(fromFile, FileMode.Open, FileAccess.Read); FileStream copyToFile = new FileStream(toFile, FileMode.Append, FileAccess.Write); int lengthToCopy; if (lengthEachTime < fileToCopy.Length)//如果分段拷贝,即每次拷贝内容小于文件总长度 { byte[] buffer = new byte[lengthEachTime]; int copied = 0; while (copied <= ((int)fileToCopy.Length - lengthEachTime))//拷贝主体部分 { lengthToCopy = fileToCopy.Read(buffer, 0, lengthEachTime); fileToCopy.Flush(); copyToFile.Write(buffer, 0, lengthEachTime); copyToFile.Flush(); copyToFile.Position = fileToCopy.Position; copied += lengthToCopy; } int left = (int)fileToCopy.Length - copied;//拷贝剩余部分 lengthToCopy = fileToCopy.Read(buffer, 0, left); fileToCopy.Flush(); copyToFile.Write(buffer, 0, left); copyToFile.Flush(); } else//如果整体拷贝,即每次拷贝内容大于文件总长度 { byte[] buffer = new byte[fileToCopy.Length]; fileToCopy.Read(buffer,0,(int)fileToCopy.Length); fileToCopy.Flush(); copyToFile.Write(buffer, 0, (int)fileToCopy.Length); copyToFile.Flush(); } fileToCopy.Close(); copyToFile.Close(); }
- .Net 中操作文本文件
- .Net 操作文本文件
- ASP.NET如何操作文本文件
- .Net C# Txt文本文件操作
- 在VB.NET里操作文本文件
- 在VB.NET里操作文本文件
- .net streamReader 和 streamWrite 操作文本文件
- 操作文本文件
- .NET修改txt文本文件
- 使用Java操作文本文件
- 使用java操作文本文件
- c#操作文本文件
- c#操作文本文件
- 使用Java操作文本文件
- PHP文本文件操作类
- C#文本文件操作
- Ini文本文件操作类
- java操作文本文件
- android input system(frameworks) analysis -- InputManager (1)
- 产品经理的权力之争
- 谈谈python文件管理中的file、seek、truncate
- Android MediaPlayer基本使用方式
- SingleTon单例模式请不要滥用
- .Net 操作文本文件
- Ruby on Rails的神奇
- 揭开正则表达式的神秘面纱
- Hadoop启动时出现Unrecognized option: -jvm的问题(收集)
- 用InternetCheckConnection 判断是否接通外网
- 【三】离散化动态规划
- JVM 内存参数设置
- 如何借用SAP标准日志处理显示工具
- autoit3 ie.au3 函数之——_IEDocInsertHTML