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

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的那些语言包,都可以看每一个方法重载是做什么的,然后相应的使用。传入相应需要的参数,看返回值。
        }
    }
}

原文地址:https://www.cnblogs.com/cjm123/p/8458207.html

时间: 2024-12-28 23:51:28

C# 基础 字符串 集合 文件操作的相关文章

Python——day3_基础1_集合,文件操作,字符编码与转码

集合 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 常用操作 s = set([3,5,9,10]) #创建一个数值集合 t = set("Hello") #创建一个唯一字符的集合 a = t | s # t 和 s的并集 b = t & s # t 和 s的交集 c = t – s # 求差集(项在t中,但不在s中) d = t ^ s # 对称差集(项在t或s中,但不会同时

python学习列表字符串字典集合文件操作字符串编码与转换

一.列表 1 names = "ZhangYang GuYun XiangPeng XuLiangchen" 2 names = ["ZhangYang", "GuYun", "XiangPeng", "ChengRongHua","XuLiangchen"] 3 names.append("LeiHaiDong") #在列表最后追加一个元素 4 names.inse

python文件基础之(文件操作)

在之前学习了python的列表.元组.集合等知识,接下来将python的文件相关的知识做一总结和分析. 一 open函数 在我们用word.excel.vim对文件操作时,肯定要先打开文件,同样在编程里面也是需要将文件打开,然后再对文件操作,操作完对文件进行关闭.文件打开使用open()函数,同时创建一个相关的对象. .基本语法: open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, clos

Day2-Python基础2---集合和文件操作

一.集合操作 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 1 s = set([1,4,5,7,3,8,7,9,6]) #创建一个数值集合 2 3 t = set("Hello") #创建一个唯一字符的集合 4 5 6 a = t | s # t 和 s的并集 7 8 b = t & s # t 和 s的交集 9 10 c = t – s # 求差集(项在t中,但不在s中)

python基础dict,集合,文件

字典是一种key:value的数据类型dict1{ 'stud1':'孙礼昭', 'stud2':'slz', 'stud3':'sunlizhao',}dict是无序的,key是唯一的  天生去重增加: dict1['stud4'] = '苍井空'修改: dict1['stud4'] = '武藤兰'删除: 指定key删除 dict1.pop('stud3'); del dict1['stud2'] 随机删除: dict1.popitem()查找: 标准用法: stud1 in dict1 通过

自动化运维Python系列(三)之基础函数和文件操作

函数作用 增强代码的重用性和可读性 在没有使用函数编程之前,我们可能一直遵循的都是面向过程编程,即根据业务逻辑从上到下实现各个功能,这样的做的坏处是代码可读性不强,大量冗余代码,而且执行效率不高:有了函数后,我们就可以将多次使用到的相同代码模块放在单独的函数定义中,在任何想要调用它的地方随时调用,这就叫做函数式编程. 面向对象编程其实就是对函数进行再分类和封装,让开发"更快更好更强..." 函数的定义 def 函数名(参数): ... 函数体 ... 返回值 函数的定义主要有如下要点:

重学Python - Day 05 - python基础 -&gt; python的文件操作:r、w、a、r+、a+ 、readline、readlines 、flush等常用的文件方法

文件的读操作 示例: 1 print("->文件句柄的获取,读操作:") 2 3 f = open('无题','r',encoding='utf8') 4 d = f.read() 5 f.close() 6 print(d) 7 8 print('->例二:') 9 f = open('无题','r',encoding='utf8') 10 e = f.read(9) 11 f.close() 12 print(e) 13 #python3中,文件中一个中英文都占位1 运

Python 基础之集合相关操作与函数和字典相关函数

一:集合相关操作与相关函数 1.集合相关操作(交 差 并 补 )#intersection() 交集set1 = {"one","two","three"}set2 = {"four","five","one"}res = set1.intersection(set2)print(res)res = set1 & set2print(res) #difference() 差集se

Python 列表生成式,函数,字符串,文件操作,生成器

知识点 1 ==与is区别:Python中对象包含的三个基本要素,分别是:id(身份标识).type(数据类型)和value(值). ==只比较值,而is比较身份标识也就是内存地址,而且在is比较中关于数据类型也就是只有数值型和字符串型的情况下,a is b才为True,当a和b是tuple,list,dict或set型时,a is b为False. 2 浅拷贝和深拷贝:需要使用copy模块 浅拷贝:copy()方法实现 1.对于不可变类型 Number String Tuple,浅复制仅仅是地