博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#文件操作的demo
阅读量:6637 次
发布时间:2019-06-25

本文共 3470 字,大约阅读时间需要 11 分钟。

File静态类的用法

c#与java文件流表示的含义不同,在c#中File是静态的,我们可以直接通过调用File类中的静态方法,就可以完成文件的读取的写入操作,File类的特点是一次性将文件全部读取和写入,所以File类适合操作小文件。

//创建一个文件

File.Create(@"C:\Users\htao\Desktop\new.txt");

/使用ReadAllBytes()和ReadAllBytes()方法/

//向文件中写入字节数组

string str = "那日少年别青衫,明月照银簪。\r\n燕子分别时候,恨风急云乱";
 //将字符串转换成字节数组
 byte[] buffer = Encoding.UTF8.GetBytes(str);//按照utf-8的进行编码
//将字节数组写入到文件中
 File.WriteAllBytes(@"C:\Users\htao\Desktop\new.txt", buffer);
Console.WriteLine("文件写入成功");

 

 //使用ReadAllBytes()读取文件

byte[] bytes = File.ReadAllBytes(@"C:\Users\htao\Desktop\new.txt");
 //将字节数组转换成字符串
 string content = Encoding.UTF8.GetString(bytes);
 Console.WriteLine(content);

 

注意:ReadAllBytes()和WriteAllBytes()读取 的是字节,可以操作任意类型的文件

///使用File类中的ReadAllLines(),ReadAllText(),WriteAllLines(),WriteAllText(),进行文件的读取和写入操作//

//读取指定文件的内容

string[] strs = File.ReadAllLines(path, Encoding.UTF8);
//遍历输出
foreach (string item in strs)
{
       Console.WriteLine(item);
}

//向指定文件写入内容

 File.WriteAllLines(path, contents, Encoding.UTF8);//向指定的路径写入内容
Console.WriteLine("文件写入成功");
 Console.WriteLine("文件写入成功");

 

Console.WriteLine(File.ReadAllText(path, Encoding.UTF8));

string contents = "那日少年别青衫,明月照银簪。\r\n燕子分别时候,恨风疾云乱";
 File.WriteAllText(path, contents, Encoding.UTF8);
Console.WriteLine("文件写入成功");

使用FileStream文件的读取和写入

using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace 文件的复制
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourcePath = @"C:\Users\htao\Desktop\20110228pm.avi";//源文件的路径
            string targetPath = @"C:\Users\htao\Desktop\copy.avi";//复制后目标文件的路径
            //复制多媒体文件
            CopyMediaFile(sourcePath, targetPath);
            Console.WriteLine("复制成功");
            Console.ReadKey();
        }
        /// <summary>
        /// 不使用using关键字复制多媒体文件,需要自己关闭流资源
        /// </summary>
        /// <param name="sourcePath">源文件路径</param>
        /// <param name="targetPath">复制后目标文件路径</param>
        public static void CopyMediaFile(string sourcePath, string targetPath)
        {
            //创建FileStream对象用来读取文件
            FileStream fsReader = new FileStream(sourcePath, FileMode.OpenOrCreate, FileAccess.Read);
            FileStream fsWriter = new FileStream(targetPath, FileMode.OpenOrCreate, FileAccess.Write);
            //定义一个字节数组,用来存储读取到的字节
            byte[] buffer = new byte[1024];
            int r = 0;
            while ((r = fsReader.Read(buffer, 0, buffer.Length)) != 0)
            {
                //r为每次读取文件的长度,当r=0表示文件已经全部读取
                //将读取的字节输出到targetPath目录中
                fsWriter.Write(buffer, 0, r);
            }
            //关闭文件流。
            fsReader.Close();
            fsWriter.Close();
            //释放资源
            fsReader.Dispose();
            fsWriter.Dispose();
        }

 

   /// <summary>

        /// 使用using关键字进行文件读取和写入操作,不需要自己关闭流资源
        /// </summary>
        /// <param name="sourcePath">源路径</param>
        /// <param name="targetPath">目标路径</param>
        public static void CopyFile(string sourcePath, string targetPath)
        {
            using(FileStream fsReader=new FileStream(sourcePath,FileMode.OpenOrCreate,FileAccess.Read))
            {
                using (FileStream fsWriter = new FileStream(targetPath, FileMode.OpenOrCreate, FileAccess.Write))
                {
                    byte[] buffer = new byte[1024];
                    int len=0;
                    while ((len = fsReader.Read(buffer, 0, buffer.Length)) != 0)
                    {
                        fsWriter.Write(buffer, 0, len);//写入文件到指定目录
                    }
                }
            }
        }
    }
}

/使用StreamReader()和StreamWriter()方法进行文件操作///

StreamReader()和StreamWriter()主要用于对字符进行操作

string path = @"C:\Users\htao\Desktop\new.txt";

using (StreamReader sReader = new StreamReader(path, Encoding.UTF8))
{
      while (!sReader.EndOfStream) //判断是否读到流的末尾
       {
              Console.WriteLine(sReader.ReadLine());
        }
}

 

 using (StreamWriter sWriter = new StreamWriter(path, true, Encoding.UTF8))

 {
         sWriter.Write("hello world");
 }
 Console.WriteLine("文件写入成功");

 

转载于:https://www.cnblogs.com/ww7018/p/9206054.html

你可能感兴趣的文章
Echarts X轴时间类型
查看>>
NSString的各种用法总结(创建、截取、判断比较、转化数据类型、拼接、替换、添加、追加、读取、写入、删去、改变)...
查看>>
Android学习记录:ViewPager实现欢迎页
查看>>
设置 git/npm/bower/pip/gem镜像或代理
查看>>
saltStack的event接口通过mysql数据库接收SaltStack批量管理日志
查看>>
【TheMatrix】The Matrix [ Reloaded] [Revolutions]
查看>>
汇编笔记(2) 多个段
查看>>
CF集萃2
查看>>
iOS开发之UIApplication
查看>>
ZooKeeper在线迁移
查看>>
修改FastColoredTextBox控件完成选择
查看>>
自动化测试和手工测试
查看>>
Leangoo到底好在哪里?
查看>>
Firefly自动售货机解决方案
查看>>
176. Second Highest Salary SQL查询语句中的 limit offset
查看>>
操作系统的内存对齐机制学习笔记
查看>>
web app 和移动端app(混合app---react native;vue+veex) 开发技术和区别
查看>>
Python高级正则
查看>>
mha配置参数详解
查看>>
mysql-备份数据库脚本
查看>>