首页 > 编程 > .NET > 正文

使用 System.IO 和 Visual C# .NET 读取文本文件

2024-07-10 13:07:18
字体:
来源:转载
供稿:网友

使用 system.io 和 visual c# .net 读取文本文件

在 visual c# .net 中读取文本文件 打开和读取文件进行读取访问是输入/输出 (io) 功能的一个非常重要的部分,即使您不需要写入到相关文件,也是如此。 本示例打开一个文件进行读取,这适用于读取文本文件,但不适用于读取二进制文件。 本示例使用多个可用于打开文件的方法之一。 虽然很多数据结构都可以用于存储从文件中检索到的信息,但是,arraylist 类是使用最简便的结构。 为了打开文件和从文件中读取,本示例使用了 system.io 名称空间中的对象,尤其是 system.io.streamreader 类。

备注: 本示例需要某种形式的文本 (.txt) 文件以从中读取。

若要在 visual c# .net 中加载和读取文本文件,请按照下列步骤操作: 1. 打开 visual studio .net。在 c# 中新建控制台应用程序。 visual studio 给您创建一个静态类以及一个空的 main() 过程。 
2. 确保该项目至少引用了 system 名称空间。 对 system、system.io 和 system.collections 名称空间使用 using 语句,这样,在后面的代码中就不需要限定这些名称空间中的声明了。 这些语句必须位于所有其他声明之前。
using system;
using system.io;
using system.collections;
3. 若要打开一个文件以进行读取,请创建 streamreader 对象的一个新实例,并将该文件的路径传递到构造函数中(如下所示):
streamreader objreader = new streamreader("c://test.txt");
4. 您需要一个字符串变量,处理时将文件的每一行存储到该变量中。 因为将把这些行添加到一个 arraylist 中,所以还应该声明和创建一个该类型的对象。
string sline="";
arraylist arrtext = new arraylist();
5. 读取该文件有很多种方法,其中包括一次性读取整个文件的 readtoend 方法。 但是,在本示例中,您可以使用 readline 方法每次只读取文件中的一行。 当到达文件结尾时,此方法返回空值,这可以用于结束循环。 当您从文件中读取每一行时,可以使用 arraylist 的 add 方法将这些行插入到 arraylist 类中。
while (sline != null)
{
sline = objreader.readline();
if (sline != null)
arrtext.add(sline);
}
objreader.close();
6. 使用 for each 循环将新填充的 arraylist 内容写入到控制台(如下所示):
foreach (string soutput in arrtext)
console.writeline(soutput);
console.readline();
7. 保存并运行您的代码,它将给控制台生成文件的内容列表。 

 

using system;
using system.io;
using system.collections;

namespace textfilereader_csharp
...{
/**////
/// summary description for class1.
///
class class1
...{
static void main(string[] args)
...{
streamreader objreader = new streamreader("c:/test.txt");
string sline="";
arraylist arrtext = new arraylist();

while (sline != null)
...{
sline = objreader.readline();
if (sline != null)
arrtext.add(sline);
}
                        objreader.close();

foreach (string soutput in arrtext)
console.writeline(soutput);
console.readline();
}
}
}

疑难解答 在处理文件 i/o 时要注意一些问题,其中包括以下事项: ? 无论何时访问某个文件,要读取或写入的文件都有可能不在系统上,或者正在使用当中。 
? 在处理文件之前,本示例先将整个文件读取到内存中。 您可能会遇到文件太大而无法存储到内存中,或者没有权限访问该文件的情况。 
以上的任何情形都会引发一个异常。 最好始终提供一个 try...catch 块来处理这些常见问题。

 

 

菜鸟学堂:
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表