A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 庞海瑞 中级黑马   /  2013-8-2 10:01  /  1477 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

------ <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();
   }
}
}

1 个回复

倒序浏览
本帖最后由 彭家贰小姐 于 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();
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马