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(, );          //参数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(, "张三");    //添加数据
            Console.WriteLine(dic[]); //张三
            dic.Remove();   //传进来的是键标
            dic.Clear();    //清空集合

            // List泛型集合(常用):
            List<int> list = new List<int>();    //声明
            list.Add(); //添加数据
            list.AddRange(, , , , , ,  });  //添加集合
            list.RemoveAt();   //索引下标从0开始
            list.RemoveRange(, );    //从索引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))
            {
                 *  * ];
                , buffer.Length);   //返回当前读取的有效字节数
                , 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, , 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))
                {
                     *  * ];
                    while (true)   //文件过大,可能一次读写不完,需要循环
                    {
                        , buffer.Length);
                        )                //当读取不到字节时,说明已经完毕,则跳出循环
                        {
                            break;
                        }
                        else
                            fwrite.Write(buffer, , 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# 基础 字符串 集合 文件操作的更多相关文章

  1. Python基础-week03 集合 , 文件操作 和 函数详解

    一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...

  2. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  3. Python基础2 列表 元祖 字符串 字典 集合 文件操作 -DAY2

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

  4. Learn day3 深浅拷贝/格式化/字符串/列表/字典/集合/文件操作

    1. pass break continue # ### pass break continue # (1) pass 过 """如果代码块当中,什么也不写,用pass来 ...

  5. 第三章:Python基础の函数和文件操作实战

    本課主題 Set 集合和操作实战 函数介紹和操作实战 参数的深入介绍和操作实战 format 函数操作实战 lambda 表达式介绍 文件操作函数介紹和操作实战 本周作业 Set 集合和操作实战 Se ...

  6. Node基础篇(文件操作)

    文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...

  7. python基础dict,集合,文件

    字典是一种key:value的数据类型dict1{ 'stud1':'孙礼昭', 'stud2':'slz', 'stud3':'sunlizhao',}dict是无序的,key是唯一的  天生去重增 ...

  8. python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: #/usr/bin/env ...

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

    一.集合操作 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 s = set([1,4,5,7,3, ...

随机推荐

  1. iView分页组件之分页使用

    基于表格简单示例 <template> <div style="margin:0 auto;"> <Table :loading="load ...

  2. php上传文件夹

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个php文件夹上传下载的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 功能介绍: 树形目录导航.您可以通 ...

  3. 用R语言求置信区间

    用R语言求置信区间 用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了. 如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了 首先,输入da=c(你的数据,用英文 ...

  4. Angular05 angular架构、搭建angular开发环境、组件必备三要素、angular启动过程

    1 angular架构 1.1 组件:是angular应用的基本构建模块,可以理解为一段带有业务逻辑和数据的HTML 1.2 服务:用来封装可重用的业务逻辑 1.3 指令:允许你想HTML元素添加自定 ...

  5. Vue 使用eventBus 实现兄弟组件间的通信

    实现方式:  主要是在相互通信的兄弟组件之中,都引入一个新的vue实例,然后通过分别调用这个实例的事件触发事件广播 和监听来实现通信和参数传递. 需求: a页面tree的增删改后,数据还是之前的老数据 ...

  6. 【C/C++开发】【Java开发】JNI的替代者—使用JNA访问Java外部功能接口

    JNI的替代者-使用JNA访问Java外部功能接口 1. JNA简单介绍 先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言( ...

  7. 【VS开发】CSplitterWnd的定制使用

    一.基本的CSplitterWnd的使用 1. 在CMainFrame中添加一个CSplitterWnd成员: CSplitterWnd m_splitterwnd1; 2. 基于CView创建两个新 ...

  8. 【图像处理】H.264开源解码器评测

    转自:http://wmnmtm.blog.163.com/blog/static/38245714201142883032575/ 要播放HDTV,就首先要正确地解开封装,然后进行视频音频解码.所以 ...

  9. vscode setting.json (@vue/eslint-config-prettier)

    {     "workbench.colorTheme": "Default Light+", // 主题     "terminal.integra ...

  10. 第二周Java课堂作业

    演示一: public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size ...