黑马程序员技术交流社区

标题: 在控制台中如何读取文件,求解 [打印本页]

作者: 庞海瑞    时间: 2013-8-2 10:01
标题: 在控制台中如何读取文件,求解
------ <a  target="blank">Windows Phone 7手机...

这种方法可行吗?using System;
using System.IO;
using System.Collections;namespace TextFileReader_csharp
{
/// <summary>
/// Summary description for Class1.
/// </summary>
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();
   }
}
}


作者: 彭家贰小姐    时间: 2013-8-2 10:29
本帖最后由 彭家贰小姐 于 2013-8-2 10:31 编辑

StreamReader可以的
当文本内容不是很多的时候,可以用File.ReadAllLines方法.该方法是一次性读完,返回一个字符串数组,每一行都是一个数组元素.
var lines = File.ReadAllLines("c:\\test.txt", Encoding.Default)
然后遍历处理
foreach (var temp in lines){}

当文本比较大时,就不要将文本内容一次读完,而应该采用你上面的流(Stream)的方式来读取内容.
.Net为我们封装了StreamReader类.
StreamReader objReader = new StreamReader("c:\\test.txt");
始化完成之后,可以每次读一行,也可以每次读一个字符 ,还可以每次读几个字符,甚至也可以一次将所有内容读完。
//读一行
string nextLine = objReader.ReadLine();
//读一个字符
int nextChar = objReader.Read();
//读100个字符
int nChars = 100;
char[] charArray = new char[nChars];
int nCharsRead = objReader.Read(charArray, 0, nChars);
   
//全部读完
string restOfStream = objReader.ReadToEnd();


使用完StreamReader之后,不要忘记关闭它: objReader.Closee();





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2