最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實現(xiàn)文本讀取的7種方式

 更新時間:2022年05月16日 08:56:26   作者:??蘇州程序大白????  
這篇文章主要介紹了C#實現(xiàn)文本讀取的7種方式,文本讀取在上位機(jī)開發(fā)中經(jīng)常會使用到,實現(xiàn)的方式也有很多種,下面我們就來分享七種方式,需要的小伙伴可以參考一下

前言

文本讀取在上位機(jī)開發(fā)中經(jīng)常會使用到,實現(xiàn)的方式也有很多種,今天跟大家分享一下C#實現(xiàn)讀取讀取的7種方式。

這里我們先寫好了一個測試界面,提供一個文件路徑選擇的入口,具體如下所示:

第一個方式

基于FileStream,并結(jié)合它的Read方法讀取指定的字節(jié)數(shù)組,最后轉(zhuǎn)換成字符串進(jìn)行顯示。

 this.rtb_Content.Clear();
            FileStream fs = new FileStream(this.txt_FilePath.Text, FileMode.Open, FileAccess.Read);
            int n = (int)fs.Length;
            byte[] b = new byte[n];
            int r = fs.Read(b, 0, n);
            fs.Close();
            this.rtb_Content.Text = Encoding.UTF8.GetString(b, 0, n);

第二個方式

基于FileStream,一個字節(jié)``一個字節(jié)讀取,放到字節(jié)數(shù)組中,最后轉(zhuǎn)換成字符串進(jìn)行顯示。

            this.rtb_Content.Clear();
            FileStream fs = new FileStream(this.txt_FilePath.Text, FileMode.Open, FileAccess.Read);
            long n = fs.Length;
            byte[] b = new byte[n];
            int data, index;
            index = 0;
            data = fs.ReadByte();
            while (data != -1)
            {
                b[index++] = Convert.ToByte(data);
                data = fs.ReadByte();
            }
            fs.Close();
            this.rtb_Content.Text = Encoding.UTF8.GetString(b);

第三個方式

基于File類,直接全部讀取出來并顯示。

this.rtb_Content.Clear();
this.rtb_Content.Text = File.ReadAllText(this.txt_FilePath.Text, Encoding.UTF8);

第四個方式

基于StreamReader,一行一行讀取,最后拼接并顯示:

            this.rtb_Content.Clear();
            StreamReader sr = new StreamReader(this.txt_FilePath.Text, Encoding.UTF8);
            string line = sr.ReadLine();
            while (line != null)
            {
                this.rtb_Content.AppendText(line);
                line = sr.ReadLine();
                if (line != null)
                {
                    this.rtb_Content.AppendText("\r\n");
                }
            }
            sr.Close();

第五個方式

基于StreamReader,一次性讀取到結(jié)尾,最后顯示。

            this.rtb_Content.Clear();
            StreamReader sr = new StreamReader(this.txt_FilePath.Text, Encoding.UTF8);
            this.rtb_Content.Text = sr.ReadToEnd();
            sr.Close();

第六個方式

基于StreamReader,一行一行讀取,通過EndOfSteam判斷是否到結(jié)尾,最后拼接并顯示。

            this.rtb_Content.Clear();
            StreamReader sr = new StreamReader(this.txt_FilePath.Text, Encoding.UTF8);

            while (!sr.EndOfStream)
            {
                this.rtb_Content.AppendText(sr.ReadLine());
                if (!sr.EndOfStream)
                {
                    this.rtb_Content.AppendText("\r\n");
                }
            }
            sr.Close();

第七個方式

基于FileStream和StreamReader來實現(xiàn):

            this.rtb_Content.Clear();
            FileStream fs = new FileStream(this.txt_FilePath.Text, FileMode.Open, FileAccess.Read);
            StreamReader sr = new StreamReader(fs, Encoding.UTF8);
            this.rtb_Content.Text = sr.ReadToEnd();
            fs.Close();
            sr.Close();

經(jīng)過測試,以上每個方法都可以實現(xiàn)文本文件的讀取:

以上7種方式主要是分別基于FileStreamFileStreamReader這三種來實現(xiàn)的,這三種方式的區(qū)別在于:

  • FileStream類可以對任意類型的文件進(jìn)行讀取操作,而且我們也可以按照需要指定每一次讀取字節(jié)長度,以此減少內(nèi)存的消耗,提高讀取效率。
  • StreamReader的特點是,它只能對文本文件進(jìn)行讀寫操作,可以一行一行的寫入和讀取。
  • File類它是一個靜態(tài)類,當(dāng)我們查看file類的那些靜態(tài)方法時,我們可以發(fā)現(xiàn),在這個類里面的方法封裝了可以執(zhí)行文件讀寫操作的對象,例如:Filestream,StreamReader,我們通過File去執(zhí)行任何文件的讀寫操作時,實際上是使用FileStream或SteamReader對象來執(zhí)行文件的讀寫操作,代碼如下所示:
public static string ReadAllText(string path, Encoding encoding)
        {
            if (path == null)
            {
                throw new ArgumentNullException("path");
            }
            if (encoding == null)
            {
                throw new ArgumentNullException("encoding");
            }
            if (path.Length == 0)
            {
                throw new ArgumentException(Environment.GetResourceString("Argument_EmptyPath"));
            }

            return InternalReadAllText(path, encoding, checkHost: true);
        }
        
        private static string InternalReadAllText(string path, Encoding encoding, bool checkHost)
        {
            using (StreamReader streamReader = new StreamReader(path, encoding, detectEncodingFromByteOrderMarks: true, StreamReader.DefaultBufferSize, checkHost))
            {
                return streamReader.ReadToEnd();
            }
        } 

到此這篇關(guān)于C#實現(xiàn)文本讀取的7種方式的文章就介紹到這了,更多相關(guān)C#文本讀取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解C#切換窗口

    詳解C#切換窗口

    最近項目不多忙,于是抽點時間鞏固下切換窗口問題,感興趣的朋友跟著小編一起學(xué)習(xí)吧
    2016-04-04
  • C#8.0中的模式匹配

    C#8.0中的模式匹配

    這篇文章介紹了C#8.0中的模式匹配,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • C# Socket 發(fā)送&接收&返回 簡單應(yīng)用實例

    C# Socket 發(fā)送&接收&返回 簡單應(yīng)用實例

    下面小編就為大家分享一篇C# Socket 發(fā)送&接收&返回 簡單應(yīng)用實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • Unity實現(xiàn)10天簽到系統(tǒng)

    Unity實現(xiàn)10天簽到系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Unity實現(xiàn)10天簽到系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • WPF實現(xiàn)Drawer抽屜控件

    WPF實現(xiàn)Drawer抽屜控件

    這篇文章主要為大家詳細(xì)介紹了如何使用WPF實現(xiàn)一個Drawer抽屜控件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • 利用thrift實現(xiàn)js與C#通訊的實例代碼

    利用thrift實現(xiàn)js與C#通訊的實例代碼

    利用thrift實現(xiàn)js與C#通訊的實例代碼,需要的朋友可以參考一下
    2013-04-04
  • C#?Random類隨機(jī)函數(shù)實例詳解

    C#?Random類隨機(jī)函數(shù)實例詳解

    這篇文章主要為大家介紹了C#?Random類隨機(jī)函數(shù)實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • C#多線程之線程控制詳解

    C#多線程之線程控制詳解

    這篇文章主要為大家詳細(xì)介紹了C#多線程之線程控制的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • C#窗體編程不顯示最小化、最大化、關(guān)閉按鈕的方法

    C#窗體編程不顯示最小化、最大化、關(guān)閉按鈕的方法

    這篇文章主要介紹了C#窗體編程不顯示最小化、最大化、關(guān)閉按鈕的方法,即windows forms編程中取消最小化、最大化、關(guān)閉按鈕,需要的朋友可以參考下
    2014-08-08
  • C#對文件進(jìn)行加密解密代碼

    C#對文件進(jìn)行加密解密代碼

    本文給大家分享的是使用C#對文件進(jìn)行加密解密的代碼,十分的簡單實用,有需要的小伙伴可以參考下。
    2015-07-07

最新評論

边坝县| 盘锦市| 米泉市| 内丘县| 禄丰县| 绵竹市| 伊宁市| 八宿县| 留坝县| 潍坊市| 溧水县| 读书| 武乡县| 阿瓦提县| 报价| 建平县| 哈巴河县| 临桂县| 金湖县| 乌兰县| 周至县| 云南省| 枞阳县| 读书| 巨野县| 九龙城区| 融水| 平昌县| 交城县| 镇康县| 安吉县| 酒泉市| 钟祥市| 轮台县| 四子王旗| 武定县| 吴桥县| 得荣县| 井陉县| 土默特右旗| 隆子县|