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(, ); //参数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# 基础 字符串 集合 文件操作的更多相关文章
- Python基础-week03 集合 , 文件操作 和 函数详解
一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...
- python3笔记十八:python列表元组字典集合文件操作
一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle #数据持久性模块 #封装的方法def OptionData(data,path): # ...
- Python基础2 列表 元祖 字符串 字典 集合 文件操作 -DAY2
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- Learn day3 深浅拷贝/格式化/字符串/列表/字典/集合/文件操作
1. pass break continue # ### pass break continue # (1) pass 过 """如果代码块当中,什么也不写,用pass来 ...
- 第三章:Python基础の函数和文件操作实战
本課主題 Set 集合和操作实战 函数介紹和操作实战 参数的深入介绍和操作实战 format 函数操作实战 lambda 表达式介绍 文件操作函数介紹和操作实战 本周作业 Set 集合和操作实战 Se ...
- Node基础篇(文件操作)
文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...
- python基础dict,集合,文件
字典是一种key:value的数据类型dict1{ 'stud1':'孙礼昭', 'stud2':'slz', 'stud3':'sunlizhao',}dict是无序的,key是唯一的 天生去重增 ...
- python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: #/usr/bin/env ...
- Day2-Python基础2---集合和文件操作
一.集合操作 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 s = set([1,4,5,7,3, ...
随机推荐
- CentOS8 安装 simple-scan 的方法
CentOS8删除了很多软件包,解决的思路一般是从CentOS7或EPEL7的软件仓库中寻找,并解决依赖关系. 比如找到EPEL7中有 simple-scan 软件包,但安装时发现其又依赖 gnome ...
- 【POJ - 3262】Protecting the Flowers(贪心)
Protecting the Flowers 直接中文 Descriptions FJ去砍树,然后和平时一样留了 N (2 ≤ N ≤ 100,000)头牛吃草.当他回来的时候,他发现奶牛们正在津津有 ...
- 2019年最新Web安全攻防班课程
咨询请加QQ:1373721311 或 2644148223 课程核心大纲总览 Web安全攻防班以业界权威的OWASP TOP 10的漏洞为主干课程.更加详细教学思维导图可访问如下链接:https:/ ...
- 一次JDBC支持表情存储的配置过程
公司的一个项目,一开始没有考虑到内容字段支持表情,有一个接入方的内容含有表情要支持下 项目是基于Springboot的. 方案1先尝试直接配置数据库连接 shardingsphere: datasou ...
- springboot获取项目的绝对路径和根目录
springboot获取当前项目路径的地址 System.getProperty("user.dir") 输出目录: G:\outshine\wangsoso //获取class ...
- poj2299(归并排序求逆序对)
题目链接:https://vjudge.net/problem/POJ-2299 题意:给定一个序列,每次只能交换邻近的两个元素,问要交换多少次才能使序列按升序排列. 思路:本质就是求逆序对.我们用归 ...
- SQL中的DATENAME()函数
SQL从时间字段值中获取年份使用DATENAME()函数. DATENAME()函数语法:DATENAME(param,date) date是时间字段名 或一个时间值 param是指定要返回日期部分的 ...
- ffmpeg AVFrame结构体及其相关函数
0. 简介 AVFrame中存储的是原始数据(例如视频的YUV, RGB, 音频的PCM), 此外还包含了一些相关的信息, 例如: 解码的时候存储了宏块类型表, QP表, 运动矢量等数据. 编码的时候 ...
- 用python实现的21点游戏
游戏规则 该游戏的规则与实际的玩法应该有点差异,因为我没有去细查21点的确切玩法,只是根据印象中进行了一系列的定义,具体如下: 1.玩家为人类玩家与电脑玩家,共2个玩家.电脑为庄家. 2.先给人类玩家 ...
- appium-Android_webview页面元素定位遇到的问题
如上图所示,该页面包含webview,但是用driver.contexts只获取到了Android原生,而webview的context则没有获取到,所以webview页面的元素.希望有大佬能提供有效 ...