1. 程式人生 > >C# 基礎 字符串 集合 文件操作

C# 基礎 字符串 集合 文件操作

name 接口 strings fstream generic direct .com 集合 開始

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            //字符串截取(Substring)
            string stroo = "我愛中華人民共和國
"; stroo.Substring(2, 4); //參數1:開始截取的索引(從0開始) 參數2:截取的長度 string str = "wan"; // // 字符串以什麽開頭,以什麽結尾: 返回true 或者false str.StartsWith(""); str.EndsWith(""); //字符串分割 str.Split(new char[] { , }, StringSplitOptions.RemoveEmptyEntries);
//比較 忽略大小寫 str.Equals("an", StringComparison.OrdinalIgnoreCase); //字符串數組插入 string[] sarr = { "qwe", "asd", "zxc" }; var s = string.Join("|", sarr);//string靜態方法 Console.WriteLine(s); //qwe|asd|zxc //2 ArrayList 可添加數據 // Hashtable 鍵值可以為任何形式的數據類型
// Dictionary Dictionary<int, string> dic = new Dictionary<int, string>(); //涉及到鍵必須為int類型,值必須為string類型 dic.Add(1, "張三"); //添加數據 Console.WriteLine(dic[1]); //張三 dic.Remove(1); //傳進來的是鍵標 dic.Clear(); //清空集合 // List泛型集合(常用): List<int> list = new List<int>(); //聲明 list.Add(1); //添加數據 list.AddRange(new int[] { 3, 4, 5, 6, 7, 8, 9 }); //添加集合 list.RemoveAt(2); //索引下標從0開始 list.RemoveRange(2, 4); //從索引2開始,移除4個元素 list.Clear();//清空集合 //Contains(是否包含) FirstOrDefault:第一個元素,.ToArray :轉換為數組 等 //a:專門操作路徑的path類 :(靜態類) //復制代碼 string str2 = @"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\es\C#.txt"; Path.GetFileName(str2); //獲取文件名 Path.GetFileNameWithoutExtension(str2); //沒有擴展名的文件名 Path.GetExtension(str2); //獲取文件擴展名 Path.GetFullPath(str2); //獲取文件絕對路徑 Path.Combine(@"c:\a\b\c\", @"f\.avi"); //把兩個路徑融合 Path.GetDirectoryName(str2); //獲取路徑名,沒有文件名 //b:File讀寫數據 //(1):以字節形式讀取: byte[] bte = File.ReadAllBytes(@"C:\Users\kun_zhuang\Desktop\資源公共字段.txt"); string str3 = Encoding.Default.GetString(bte); //轉換為字符串(最適用) 還有:UTF8Encoding.Default.GetString(bte)、Encoding.GetEncoding("GB2312").GetString(bte) // 、ASCIIEncoding.Default.GetString(bte) 等多種編碼格式 //、、逐行讀取 string[] st = File.ReadAllLines(@"C:\Users\kun_zhuang\Desktop\資源公共字段.txt", Encoding.Default); //逐行讀取內容 遍歷數組 可對每一行進行操作 string str4 = File.ReadAllText(@"C:\Users\kun_zhuang\Desktop\資源公共字段.txt", Encoding.Default); //以文本形式讀取 對於圖片類,視頻文件類 等其他類 不適用 //以字節形式寫數據 byte[] by3 = Encoding.Default.GetBytes(str); File.WriteAllBytes(@"C:\Users\kun_zhuang\Desktop\new3.txt", by3); //以數組的形式逐行寫數據 // string[] strArray = { "w", "a", "n1bz" }; File.WriteAllLines(@"C:\Users\kun_zhuang\Desktop\new3.txt", strArray); //strArray為定義的數組 //整體寫入 File.WriteAllText(@"C:\Users\kun_zhuang\Desktop\new3.txt", str); //整體寫入,最常用的方式 str為字符串 File.AppendAllText(@"C:\Users\kun_zhuang\Desktop\new3.txt", str); File.AppendAllLines(@"C:\Users\kun_zhuang\Desktop\new3.txt", strArray); //逐行追加 //FileStream文件流 //讀取文件: //復制代碼 using (FileStream fread = new FileStream(@"C:\Users\kun_zhuang\Desktop\new3.txt", FileMode.OpenOrCreate, FileAccess.Read)) { byte[] buffer = new byte[1024 * 1024 * 2]; int r = fread.Read(buffer, 0, buffer.Length); //返回當前讀取的有效字節數 string str9 = Encoding.Default.GetString(buffer, 0, r); //解碼 } //參數①: 針對哪一個文件 寫文件路徑 //參數②: 要對此文件進行怎樣的操作 //參數③: 要對此文件的數據進行怎樣的操作 //(2):寫文件: using (FileStream fwrite = new FileStream(@"C:\Users\kun_zhuang\Desktop\文件流.txt", FileMode.OpenOrCreate, FileAccess.Write)) { byte[] buffer = Encoding.Default.GetBytes(str); //str為字符串 fwrite.Write(buffer, 0, buffer.Length); } // (3):復制文件: ////復制代碼 string path = @"C:\Users\kun_zhuang\Desktop\文件流.txt"; string newpath = @"C:\Users\kun_zhuang\Desktop\文件流2.txt"; //創建一個負責讀取的文件流 using (FileStream fread = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read)) { //創建一個寫入文件的文件流 using (FileStream fwrite = new FileStream(newpath, FileMode.OpenOrCreate, FileAccess.Write)) { byte[] buffer = new byte[1024 * 1024 * 5]; while (true) //文件過大,可能一次讀寫不完,需要循環 { int r = fread.Read(buffer, 0, buffer.Length); if (r == 0) //當讀取不到字節時,說明已經完畢,則跳出循環 { break; } else fwrite.Write(buffer, 0, r); } } Console.WriteLine("復制成功!"); } //為什麽使用using? 當一個類最終繼承IDisposable 這個接口,就需要到釋放資源空間,用using就可以自動釋放資源空間,提高效率,減少代碼量 // d:StreamReader和StreamWriter //復制代碼 //讀取 using (StreamReader sRead = new StreamReader(@"C:\Users\kun_zhuang\Desktop\文件流2.txt", Encoding.Default)) { while (!sRead.EndOfStream) //指示當前流的位置是否為結尾 { Console.WriteLine(sRead.ReadLine()); } } //寫入 using (StreamWriter stwr = new StreamWriter(@"C:\Users\kun_zhuang\Desktop\文件流2.txt", true, Encoding.Default)) { stwr.Write(str); } //小結:兩種方式都可以對文件進行讀寫操作,相對Stream用的比較多一點,用法很簡單,根據write 或者read的方法,傳入相應的參數即可。 //總結:c#有很大一部分基礎語法,最重要的會使用微軟封裝的一些類,一些方法。看這些類的方法的重載。如果有vs的那些語言包,都可以看每一個方法重載是做什麽的,然後相應的使用。傳入相應需要的參數,看返回值。 } } }

C# 基礎 字符串 集合 文件操作