1.讀取文件
輸入流用於從外部源讀取數據,在很多情況下,數據源可以是磁盤上的文件或網絡的某些位置,任何可能發送數據的位置都可以是數據源,比如網絡應用程序,web服務,甚至是控制台。StreamReader是一個通用類,可以用於任何流;StreamReader對象的創建方式非常類似於StreamWriter對象的創建方式。
StreamWriter類有兩個基本的方法read和readLine
Read()方法將流的下一個字符作為正整數值返回,如果到達了流的結尾處,則返回-1
ReadLing()方法是讀取並返回一行字符,如果返回為空,那么就是到達了流的結尾。
ReadEnd()方法讀小文件最好,它直接讀取完整的文件並作為字符串返回。
例:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace StreamReaderTest
{
class Program
{
static void Main(string[] args)
{
string strLine;
try
{
Console.Write("請輸入文件路徑及文件名:");
string mess = Console.ReadLine();
FileStream aFile = new FileStream(mess, FileMode.Open);
StreamReader sr = new StreamReader(aFile);//用FileStream對象實例化一個StreamReader對象
//strLine = sr.ReadToEnd();//讀取完整的文件,如果用這個方法,就可以不用下面的while循環
strLine = sr.ReadLine();// 讀取一行字符並返回
while (strLine != null)
{
Console.WriteLine(strLine);
strLine = sr.ReadLine();
}
sr.Close();
Console.ReadLine();
}
catch (IOException e)
{
Console.WriteLine("an IOexception has been thrown!");
Console.WriteLine(e.ToString());
return;
}
return;
}
}
}
2.分隔文件
讀取使用逗號分隔的文件,string類提供了一種稱為Split()的方法,可以用於將字符串按照提供的分隔符分隔成字符組.
例:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace CommaValues
{
class Program
{
static void Main(string[] args)
{
while (true)
{
string strLine;
string[] strArray;
char[] charArray = new Char[] { ',' };
Console.Write("請輸入文件內容以逗號分隔的文件路徑及文件名:");
string name = Console.ReadLine();
try
{
FileStream aFile = new FileStream(name, FileMode.Open);
StreamReader sr = new StreamReader(aFile);
strLine = sr.ReadLine();
while (strLine != null)
{
strArray = strLine.Split(charArray);
for (int x = 0; x <= strArray.GetUpperBound(0); x++)
{
Console.WriteLine(strArray[x].Trim());
}
strLine = sr.ReadLine();
}
sr.Close();
//Console.ReadLine();
}
catch (IOException e)
{
Console.WriteLine(e.ToString());
return;
}
//return;
}
}
}
}
