博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]使用 System.IO 和 Visual C# .NET 读取文本文件
阅读量:5149 次
发布时间:2019-06-13

本文共 2197 字,大约阅读时间需要 7 分钟。

本文有点教科书的味儿~~

在 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. 保存并运行您的代码,它将给控制台生成文件的内容列表。 

 

1
using
System;
2
using
System.IO;
3
using
System.Collections;
4
5
namespace
TextFileReader_csharp
6
...{
7
/**/
///
8
///
Summary description for Class1.
9
///
10
class
Class1
11
...{
12
static
void
Main(
string
[] args)
13
...{
14
StreamReader objReader
=
new
StreamReader(
"
c:\test.txt
"
);
15
string
sLine
=
""
;
16
ArrayList arrText
=
new
ArrayList();
17
18
while
(sLine
!=
null
)
19
...{
20
sLine
=
objReader.ReadLine();
21
if
(sLine
!=
null
)
22
arrText.Add(sLine);
23
}
24
objReader.Close();
25
26
foreach
(
string
sOutput
in
arrText)
27
Console.WriteLine(sOutput);
28
Console.ReadLine();
29
}
30
}
31
}

疑难解答 在处理文件 I/O 时要注意一些问题,其中包括以下事项: ? 无论何时访问某个文件,要读取或写入的文件都有可能不在系统上,或者正在使用当中。 

? 在处理文件之前,本示例先将整个文件读取到内存中。 您可能会遇到文件太大而无法存储到内存中,或者没有权限访问该文件的情况。 
以上的任何情形都会引发一个异常。 最好始终提供一个 try...catch 块来处理这些常见问题。

来自:

转载于:https://www.cnblogs.com/facing/archive/2011/03/16/1986100.html

你可能感兴趣的文章
【MySql】Order By 排序
查看>>
jQuery选择器
查看>>
spring字符编码filter
查看>>
thinkphp5省市区三级联动例子
查看>>
让HttpClient不要打印巨多的日志
查看>>
[笔记] SQL性能优化 - 常用语句(一)
查看>>
openvino安装踩坑记
查看>>
html03
查看>>
LINQ语法详解
查看>>
DICOM:DICOM3.0网络通信协议
查看>>
分享:FIFO 同步、异步以及Verilog代码实现
查看>>
《构建之法》读书笔记2
查看>>
enum 枚举一般用法 dotnet
查看>>
SVM理解
查看>>
ReportServer Tutorial
查看>>
SQL-Server存储过程基础
查看>>
微信网页 第三方登录原理详解(转)
查看>>
day12
查看>>
cobbler
查看>>
Codeforces Round #280 (Div. 2) E. Vanya and Field 数学
查看>>