色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于C#實現文本讀取的7種方式是什么

汽車電子技術 ? 來源:dotNet工控上位機 ? 作者: 新閣教育付工 ? 2023-02-22 15:38 ? 次閱讀

前言

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

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

圖片

方式一

基于FileStream,并結合它的Read方法讀取指定的字節數組,最后轉換成字符串進行顯示。

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,一個字節一個字節讀取,放到字節數組中,最后轉換成字符串進行顯示。

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,一次性讀取到結尾,最后顯示。

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

方式六

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

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

方式7

基于FileStream和StreamReader來實現。

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

測試結果

經過測試,以上每個方法都可以實現文本文件的讀取。

圖片

總結

以上7種方式主要是分別基于FileStream、File和StreamReader這三種來實現的,這三種方式的區別在于:

  • FileStream類可以對任意類型的文件進行讀取操作,而且我們也可以按照需要指定每一次讀取字節長度,以此減少內存的消耗,提高讀取效率。
  • StreamReader的特點是,它只能對文本文件進行讀寫操作,可以一行一行的寫入和讀取。
  • File類它是一個靜態類,當我們查看file類的那些靜態方法時,我們可以發現,在這個類里面的方法封裝了可以執行文件讀寫操作的對象,例如:Filestream,StreamReader,我們通過File去執行任何文件的讀寫操作時,實際上是使用FileStream或SteamReader對象來執行文件的讀寫操作,代碼如下所示:
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();
            }
        }

-END-

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 字符串
    +關注

    關注

    1

    文章

    584

    瀏覽量

    20551
  • 上位機
    +關注

    關注

    27

    文章

    943

    瀏覽量

    54875
  • Read
    +關注

    關注

    0

    文章

    10

    瀏覽量

    11116
收藏 人收藏

    評論

    相關推薦

    《Visual C# 2008程序設計經典案例設計與實現》---動態讀取XMI文件

    《Visual C# 2008程序設計經典案例設計與實現》---動態讀取XMI文件.zip
    發表于 07-08 13:21

    Python與C#對比

    簡潔優美, 簡單,易學。擁有強大的標準庫及第三方庫。Python的使用范圍極廣。C#是微軟公司推出的一功能強大的高級編程語言,能夠迅速、高效地完成Windows平臺上的項目開發,被稱為未來語言
    發表于 05-14 17:14

    請問c#中該怎么讀取數據?

    c#中,選擇性讀取之前保存好的數據,該怎么讀?
    發表于 09-29 10:14

    如何利用C#實現HMACSHA256加密算法呢

    什么是HMAC?如何利用C#實現HMACSHA256加密算法呢?
    發表于 01-20 07:07

    讀取并分析GPS數據的GPSReader程序(C#和VB.net版代碼)

    讀取并分析GPS數據的GPSReader程序(C#和VB.net版代碼)
    發表于 05-26 10:01 ?0次下載
    <b class='flag-5'>讀取</b>并分析GPS數據的GPSReader程序(<b class='flag-5'>C#</b>和VB.net版代碼)

    C#讀取GPS數據的基類工具

    C#讀取GPS數據的基類工具
    發表于 02-08 16:56 ?24次下載

    C語言入門教程-讀取文本文件

    讀取文本文件若要讀取一個文件,請使用r模式打開。一般來說,讀取文件時最好不要用fscanf,因為,除非文件的數據格式非常標準,否則fscanf并不能準確地
    發表于 07-29 11:29 ?2925次閱讀

    使用C#實現Arduino與電腦進行串行通訊 - Alex Le

    希望能夠給Arduino 串口通信需求都以幫助。 C#通信方式
    發表于 12-25 10:19 ?28次下載

    C#教程之自制數值文本框組件

    C#教程之自制數值文本框組件,很好的C#資料,快來學習吧。
    發表于 04-20 10:50 ?10次下載

    C#教程之調用SMTP發送文本內容

    C#教程之調用SMTP發送文本內容,很好的C#資料,快來學習吧。
    發表于 04-20 15:27 ?5次下載

    C#教程之讀取數據庫表結構

    C#教程之讀取數據庫表結構,很好的C#資料,快來學習吧。
    發表于 04-20 15:27 ?6次下載

    《Visual C# 2008程序設計經典案例設計與實現》---

    《Visual C# 2008程序設計經典案例設計與實現》---飛舞的雪花
    發表于 02-07 11:40 ?0次下載

    《Visual C# 2008程序設計經典案例設計與實現》---

    《Visual C# 2008程序設計經典案例設計與實現》---動態讀取XMI文件
    發表于 01-18 20:33 ?0次下載

    《Visual C# 2008程序設計經典案例設計與實現》---

    《Visual C# 2008程序設計經典案例設計與實現》---Visual C# 2008與圖形圖像
    發表于 01-18 20:33 ?1次下載

    C#實現ActiveX控件開發與部署

    C#實現ActiveX控件開發與部署(肇慶理士電源技術有限公司鳥瞰圖)-該文檔為C#實現ActiveX控件開發與部署講解文檔,是一份還算不錯的參考文檔,感興趣的可以下載看看,,,,,,
    發表于 09-27 17:36 ?6次下載
    <b class='flag-5'>C#</b><b class='flag-5'>實現</b>ActiveX控件開發與部署
    主站蜘蛛池模板: 国产h视频在线观看网站免费| 久久受www免费人成_看片中文| 男女啪啪抽搐呻吟高潮动态图| 97超碰在线视频 免费| 免费精品国偷自产在线在线| 超碰97av 在线人人操| 小鸟酱喷水| 久久re视频精品538在线| aa级毛片毛片免费观看久| 偷偷鲁青春草原视频| 久久人妻少妇嫩草AV蜜桃99 | 办公室里呻吟的丰满老师电影| 手机毛片在线观看| 精品久久中文字幕有码| 99在线免费视频| 亚洲精品国偷拍电影自产在线| 蜜桃视频无码区在线观看| 公么我好爽再深一点| 一个人免费观看HD完整版| 热久久2018亚洲欧美| 激情内射亚洲一区二区三区爱妻 | 美女伸开两腿让我爽| 国产 亚洲 日韩 欧美 在线观看 | 女厕所边摸边吃奶边做爽视频| 国产全部视频列表支持手机| 最新国产在线视频在线| 天天拍拍国产在线视频| 麻豆久久婷婷五月国产| 国产免费人视频在线观看免费| 98久久无码一区人妻A片蜜 | 在教室伦流澡到高潮HNP视频 | 亚洲综合AV在线在线播放| 日本午夜视频在线| 久久精品亚洲热综合一本奇米| 高清观看ZSHH96的视频素材 | 被窝伦理午夜电影网| 在线 自拍 综合 亚洲 欧美| 无套内射CHINESEHD| 牛牛在线视频| 久久国产免费一区二区三区| 国产激情文学|