亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#文本文件(.txt)讀寫

2019-11-14 16:04:38
字體:
來源:轉載
供稿:網友

  目錄

  • 前言
  • 讀取txt文件
  • 寫入txt文件

 

 

前言

 

  計算機在最初只支持ASCII編碼,但是后來為了支持其他語言中的字符(比如漢字)以及一些特殊字符(比如€),就引入了Unicode字符集?;赨nicode字符集的編碼方式有很多,比如UTF-7、UTF-8、Unicode以及UTF-32。在Windows操作系統中,一個文本文件的前幾個字節是用來指定該文件的編碼方式的

 

  如果你使用NotePad或WordPad來打開一個文本文件,你并不用擔心該文件的編碼方式,因為這些應用程序會先讀取文件的前幾個字節來確定該文件的編碼方式,然后用正確的編碼將文本中的每個字符顯示出來。下面的圖中,可以看到當用NotePad記事本保存一個文檔時,可以選擇的編碼(Encoding)方式有哪些

 

  用.Net讀取文本文件或寫入文本文件,你都不需要擔心編碼方式,.Net已經將這些封裝好了。在讀取一個文本文件的時候,如果你已經知道文本使用的是什么編碼方式,你可以指定使用哪種編碼方式讀取文本,否則如果不指定編碼方式,.Net會讀取文本的前幾個字節來確定使用哪種編碼方式讀取文件內容的。在寫入文本文件的時候,你也可以指定你想使用的編碼方式。如果你沒有指定編碼,.Net會根據寫入的文本是否含有特殊字符來決定編碼方式。如果沒有特殊字符,就采用ASCII編碼,如果有特殊字符,就采用UTF-8編碼

 

 

讀取txt文件

 

  如果你要讀取的文件內容不是很多,可以使用 File.ReadAllText(filePath) 或指定編碼方式 File.ReadAllText(FilePath, Encoding)的方法。它們都一次性將文本內容全部讀完,并返回一個包含全部文本內容的字符串

 

string str1 = File.ReadAllText(@"c:/temp/a.txt"); //也可以指定編碼方式 string str2 = File.ReadAllText(@"c:/temp/a.txt", Encoding.ASCII); 

 

  也可以使用方法File.ReadAllLines,該方法一次性讀取文本內容的所有行,返回一個字符串數組,數組元素是每一行的內容

string[] strs1 = File.ReadAllLines(@"c:/temp/a.txt"); // 也可以指定編碼方式 string[] strs2 = File.ReadAllLines(@"c:/temp/a.txt", Encoding.ASCII); 

 

  當文本的內容比較大時,我們就不要將文本內容一次性讀完,而應該采用流(Stream)的方式來讀取內容。

  .Net為我們封裝了StreamReader類,它旨在以一種特定的編碼從字節流中讀取字符。StreamReader類的方法不是靜態方法,所以要使用該類讀取文件首先要實例化該類,在實例化時,要提供讀取文件的路徑。實例化StreamReader類有很多種方式。下面我羅列出幾種:

StreamReader sR1 = new StreamReader(@"c:/temp/a.txt"); // 同樣也可以指定編碼方式 StreamReader sR2 = new StreamReader(@"c:/temp/a.txt", Encoding.UTF8);FileStream fS = new FileStream(@"C:/temp/a.txt", FileMode.Open, Fileaccess.Read, FileShare.None); StreamReader sR3 = new StreamReader(fS); StreamReader sR4 = new StreamReader(fS, Encoding.UTF8);FileInfo myFile = new FileInfo(@"C:/temp/a.txt"); // OpenText 創建一個UTF-8 編碼的StreamReader對象 StreamReader sR5 = myFile.OpenText();// OpenText 創建一個UTF-8 編碼的StreamReader對象 StreamReader sR6 = File.OpenText(@"C:/temp/a.txt");

  

  初始化完成之后,你可以每次讀一行,也可以每次讀一個字符 ,還可以每次讀幾個字符,甚至也可以一次將所有內容全部讀完

// 讀一行 string nextLine = sR.ReadLine();
// 讀一個字符 int nextChar = sR.Read();
// 讀100個字符 int n = 100; char[] charArray = new char[n]; int nCharsRead = sR.Read(charArray, 0, n);
// 全部讀完 string restOfStream = sR.ReadToEnd();

 

  使用完StreamReader之后,不要忘記關閉它: sR.Close();

  假如我們需要一行一行的讀,將整個文本文件讀完,下面看一個完整的例子:

StreamReader sR = File.OpenText(@"C:/temp/a.txt"); string nextLine; while ((nextLine = sR.ReadLine()) != null) {     Console.WriteLine(nextLine); } sR.Close(); 

 

 

寫入txt文件

 

  寫文件和讀文件一樣,如果你要寫入的內容不是很多,可以使用File.WriteAllText方法來一次將內容全部寫如文件。如果你要將一個字符串的內容寫入文件,可以用File.WriteAllText(FilePath) 或指定編碼方式 File.WriteAllText(FilePath, Encoding)方法

string str1 = "Good Morning!"; File.WriteAllText(@"c:/temp/test/a.txt", str1); // 也可以指定編碼方式 File.WriteAllText(@"c:/temp/test/a.txt", str1, Encoding.ASCII); 

 

  如果你有一個字符串數組,你要把數組的每一個元素作為一行寫入文件中,可以用File.WriteAllLines方法

string[] strs = { "Good Morning!","Good Afternoon!","Good Evening!"}; File.WriteAllLines(@"c:/temp/a.txt", strs); // 也可以指定編碼方式 File.WriteAllLines(@"c:/temp/a.txt", strs, Encoding.ASCII);

 

  使用File.WriteAllText或File.WriteAllLines方法時,如果指定的文件路徑不存在,會創建一個新文件;如果文件已經存在,則會覆蓋原文件

 

  當要寫入的內容比較多時,同樣也要使用流(Stream)的方式寫入

  .Net為我們封裝了StreamWriter類,它以一種特定的編碼向字節流中寫入字符。StreamWriter類的方法同樣也不是靜態方法,所以要使用該類寫入文件首先要實例化該類,實例化StreamWriter類同樣有很多方式:

// 如果文件不存在,創建文件; 如果存在,覆蓋文件 StreamWriter sW1 = new StreamWriter(@"c:/temp/a.txt"); // 也可以指定編碼方式, true 是 Appendtext, false 為覆蓋原文件 StreamWriter sW2 = new StreamWriter(@"c:/temp/a.txt", true, Encoding.UTF8);// FileMode.CreateNew: 如果文件不存在,創建文件;如果文件已經存在,拋出異常 FileStream fS = new FileStream(@"C:/temp/a.txt", FileMode.CreateNew, FileAccess.Write, FileShare.Read); StreamWriter sW3 = new StreamWriter(fS); StreamWriter sW4 = new StreamWriter(fS, Encoding.UTF8);// 如果文件不存在,創建文件; 如果存在,覆蓋文件 FileInfo myFile = new FileInfo(@"C:/temp/a.txt"); StreamWriter sW5 = myFile.CreateText(); 

 

  初始化完成后,可以用StreamWriter對象一次寫入一行,一個字符,一個字符數組,甚至一個字符數組的一部分

// 寫一個字符            sw.Write('a');
// 寫一個字符數組 char[] charArray = new char[100]; sw.Write(charArray);// 寫一個字符數組的一部分(10~15)sw.Write(charArray, 10, 15);

 

  同樣,StreamWriter對象使用完后,不要忘記關閉。sW.Close(); 最后來看一個完整的使用StreamWriter一次寫入一行的例子:

FileInfo myFile = new FileInfo(@"C:/temp/a.txt"); StreamWriter sW = myFile.CreateText();string[] strs = { "早上好", "下午好" ,"晚上好};            foreach (var s in strs) {     sW.WriteLine(s); } sW.Close(); 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
疯狂蹂躏欧美一区二区精品| 国产精品自产拍在线观看| 欧美激情视频一区二区三区不卡| 成人免费午夜电影| 一本色道久久88精品综合| 亚洲精品久久久久| 亚洲精品国精品久久99热| 欧美激情一级欧美精品| 精品日韩视频在线观看| 亚洲天堂av图片| 欧美日韩色婷婷| 亚洲欧洲在线看| 欧美亚洲国产成人精品| 中文综合在线观看| 成人av在线网址| 亚洲毛片在线看| 亚洲精品短视频| 国产日韩欧美成人| 久热爱精品视频线路一| 亚洲人成欧美中文字幕| 亚洲电影免费观看| 国产精品27p| 日韩亚洲在线观看| 亚洲成人av中文字幕| 在线视频欧美性高潮| 欧美性xxxxx| 欧洲成人在线观看| 97国产精品视频| 亚洲欧美制服第一页| 91av视频在线观看| 69影院欧美专区视频| 日韩在线视频免费观看高清中文| 国产精品视频26uuu| 国产精品丝袜白浆摸在线| 亚洲精品一区中文字幕乱码| 欧美性生活大片免费观看网址| 欧美日韩中国免费专区在线看| 国产精品va在线播放| 国产在线观看一区二区三区| 91精品综合久久久久久五月天| 日韩在线免费视频| 欧美性猛交xxxx黑人猛交| 亚洲国产精品久久久久久| 国产精品久久久久久久7电影| 国产精品白丝jk喷水视频一区| 国产精品电影久久久久电影网| 正在播放亚洲1区| 精品视频—区二区三区免费| 欧美成人亚洲成人日韩成人| 最新国产精品拍自在线播放| 国产精品永久免费在线| 日韩有码视频在线| 国产成人av在线| 亚洲最大的av网站| 欧美三级xxx| 中文字幕av一区二区三区谷原希美| 91色在线观看| 亚洲综合大片69999| 91高清免费视频| 在线免费看av不卡| 亚洲高清福利视频| 国产在线精品播放| 亚洲欧美激情在线视频| 8090成年在线看片午夜| 欧美有码在线视频| 亚洲a成v人在线观看| 日韩视频精品在线| 亚洲一区中文字幕在线观看| 欧美在线欧美在线| 欧美激情第一页xxx| 日韩在线观看免费全| 欧美日韩国产成人高清视频| 91国偷自产一区二区三区的观看方式| 久久久久久999| 国内精品久久久久久影视8| 欧美一区三区三区高中清蜜桃| 亚洲v日韩v综合v精品v| 亚洲毛片在线免费观看| 成人黄色片网站| 国产成人福利视频| 在线视频日韩精品| 97国产精品免费视频| 国产亚洲在线播放| 日本在线观看天堂男亚洲| 激情亚洲一区二区三区四区| 久久成人综合视频| 伊人伊人伊人久久| 国产日本欧美视频| 国产一区二区三区直播精品电影| 成人黄色av网站| 日韩av手机在线看| 国产第一区电影| 97人人模人人爽人人喊中文字| 欧美另类xxx| 国模精品视频一区二区三区| 欧美一区二区三区图| 51视频国产精品一区二区| 亚洲国产精彩中文乱码av在线播放| 欧美另类极品videosbestfree| 欧美日韩中国免费专区在线看| 成人黄色免费片| 中文欧美日本在线资源| 成人国产精品av| 色综合色综合网色综合| 亚洲欧美日韩在线高清直播| 日韩中文在线中文网在线观看| 午夜伦理精品一区| 亚洲日韩欧美视频一区| 精品福利在线视频| 日韩在线视频免费观看| 欧美日韩在线视频一区二区| 色伦专区97中文字幕| 国产欧美日韩中文字幕在线| 国产成人一区三区| 国产精品久久久久久婷婷天堂| 久久亚洲精品小早川怜子66| 中文字幕久热精品视频在线| 96精品久久久久中文字幕| 日韩精品极品在线观看播放免费视频| 中文字幕一区二区三区电影| 国产日韩专区在线| 亚洲欧洲激情在线| 亚洲色在线视频| 国内精品久久久久久| 欧洲中文字幕国产精品| 亚洲天堂2020| 不卡av电影在线观看| www.日韩视频| 国产欧美日韩精品丝袜高跟鞋| 美女999久久久精品视频| 亚洲免费影视第一页| 精品国产自在精品国产浪潮| 欧美黄色三级网站| 日韩av在线免费看| 国外成人在线播放| 国产精品视频自在线| 国产成人91久久精品| 精品网站999www| 亚洲va码欧洲m码| 91精品视频观看| 1769国内精品视频在线播放| 欧美大人香蕉在线| 中文字幕精品—区二区| 日韩精品极品视频免费观看| 亚洲免费电影一区| 最新国产成人av网站网址麻豆| 国内精品免费午夜毛片| 久久综合色影院| 欧美孕妇孕交黑巨大网站| 51久久精品夜色国产麻豆| 2019中文字幕在线免费观看| 亚洲欧美中文日韩v在线观看| 日本电影亚洲天堂| 黄色精品一区二区| 亚洲欧洲免费视频| 国产精品高清免费在线观看| 久久男人资源视频| 欧美裸体xxxx极品少妇软件| 国产视频精品一区二区三区| 日韩欧美在线免费观看| 亚洲午夜精品视频| 国产精品女视频| 国产精品一区二区三区在线播放| xvideos成人免费中文版|