我是靠谱客的博主 现代宝马,最近开发中收集的这篇文章主要介绍C#基础-Path,File,FileStreamPath(操作路径)File(操作文件)FileStreamStreamReader、StreamWriter,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(27)

评论列表共有 0 条评论

立即
投稿
返回
顶部