C# StreamReader對象


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM