概述
Path(操作路径)
string str = @"C:UserschhxiDesktopchh.wav";
//获取文件名
Console.WriteLine(Path.GetFileName(str));//chh.wav
//获取文件名但不包含扩展名
Console.WriteLine(Path.GetFileNameWithoutExtension(str));//chh
//获取文件的扩展名
Console.WriteLine(Path.GetExtension(str));//.wav
//获取文件所在的文件夹名称
Console.WriteLine(Path.GetDirectoryName(str));//C:UserschhxiDesktop
//获取文件所在的全路径
Console.WriteLine(Path.GetFullPath(str));//C:UserschhxiDesktopchh.wav
//连接两个字符串作为路径
Console.WriteLine(Path.Combine(@"c:a","b.txt"));//c:ab.txt
Console.ReadKey();
File(操作文件)
1KB = 1024Byte
1M = 1024KB
1G = 1024M
1T = 1024G
1PT = 1024T
1.创建一个文件
File.Create(@"C:UserschhxiDesktopchh.txt");
Console.WriteLine("创建成功");
Console.ReadKey();
2.删除一个文件
File.Delete(@"C:UserschhxiDesktopchh.txt");
Console.WriteLine("删除成功");
Console.ReadKey();
3.复制一个文件
File.Copy(@"C:UserschhxiDesktopC#Tips.md", @"C:UserschhxiDesktopchh.md");
Console.WriteLine("复制成功");
Console.ReadKey();
4.将文件内容进行读取
byte[] buffer = File.ReadAllBytes(@"C:UserschhxiDesktopC#Tips.md");
//UTF-8 GB2312:简体字 GBK:繁体字 ASCII Unicode
string contents = Encoding.Default.GetString(buffer);
Console.WriteLine(contents);
Console.ReadKey();
注意:ReadAllLines:读取每一行。ReadAllText:读取全部文件
区别:如果是文本,这三种都可以,如果是视频 音频则需要用ReadAllBytes
5.将字符串写入文件内容中
string str = "今天天气好晴朗";
byte[] buffer1 = Encoding.Default.GetBytes(str);
File.WriteAllBytes(@"C:UserschhxiDesktophh.md", buffer1);
Console.ReadKey();
注意:WriteAllLine:写入每一行,返回的是数组。WriteAllText:全部写入,返回字符串
区别:如果对每一行需要格外操作就用WriteAllLine ,如果只是用来显示WriteAllText也可以
FileStream
1.使用文件流FileStream 进行读取文件
//使用文件流进行读取文件
FileStream fileStream = new FileStream(@"C:UserschhxiDesktopC#Tips.md",FileMode.OpenOrCreate,FileAccess.Read);
byte[] buffer = new byte[1024*1024*5];//5M
//返回本次实际已经读到的字节数
int r = fileStream.Read(buffer,0,buffer.Length);
string str = Encoding.UTF8.GetString(buffer,0,r);//只解码实际有效的
//关闭流
fileStream.Close();
//释放流所占的资源
fileStream.Dispose();
Console.WriteLine(str);
Console.ReadKey();
2.使用文件流FileStream写入文件
//使用文件流进行写入文件 ---此时以现有字节数覆盖原来的字节数
using (FileStream fileStream = new FileStream(@"C:UserschhxiDesktopC#Tips.md", FileMode.OpenOrCreate, FileAccess.Write))
{
string str = "看我有木有把你覆盖掉";
byte[] buffer = Encoding.UTF8.GetBytes(str);
fileStream.Write(buffer,0,buffer.Length);//最多写入的字节数
}
Console.WriteLine("写入OK");
Console.ReadKey();
//使用using()会自动释放资源
StreamReader、StreamWriter
1.使用StreamReader来读取一个文本文件
using (StreamReader sr = new StreamReader(@"C:UserschhxiDesktopC#Tips.md",Encoding.UTF8))
{
while (!sr.EndOfStream)//判断当前流是否在流的末尾
{
Console.WriteLine(sr.ReadLine());
}
}
Console.ReadKey();
2.使用StreamWriter来写入一个文本文件
using (StreamWriter sw = new StreamWriter(@"C:UserschhxiDesktophh.md",true))//true 就只会在后面追加不会覆盖默认是false
{
sw.Write("看我有没有覆盖掉1");
}
Console.ReadKey();
10.使用FileSream 来复制一个文件(先读取,再复制)
static void Main(string[] args)
{
string source = @"C:UserschhxiDesktopC#Tips.md";
string target = @"C:UserschhxiDesktopnewTips.md";
CopyFile(source,target);
Console.WriteLine("复制成功");
Console.ReadKey();
}
public static void CopyFile(string source,string target)
{
using (FileStream fRead = new FileStream(source,FileMode.Open,FileAccess.Read))
{
using (FileStream fWriter = new FileStream(target,FileMode.OpenOrCreate, FileAccess.Write))
{
while (true)
{
byte[] buffer = new byte[1024 * 1024 * 5];//5M
//返回实际读到的字节数
int r = fRead.Read(buffer, 0, buffer.Length);
//返回0证明都读取完了
if (r == 0)
{
break;
}
fWriter.Write(buffer, 0, r);
}
}
}
}
总结
FileStream :操作字节(可任何文件包括文件,音频,视频)
StreamReader 和StreamWriter:操作字符(可操作文件)
最后
以上就是现代宝马为你收集整理的C#基础-Path,File,FileStreamPath(操作路径)File(操作文件)FileStreamStreamReader、StreamWriter的全部内容,希望文章能够帮你解决C#基础-Path,File,FileStreamPath(操作路径)File(操作文件)FileStreamStreamReader、StreamWriter所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复