C#_《文件》

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 文件
{
    class Program
    {
        static void Main(string[] args)
        {

            //文件操作
#if false
            //File类
            //判断文件是否存在
            string filePath = "D:\\123.txt";
            string writeStr = "床前明月光,\n疑是地上霜,\n举头望明月,\n低头思归乡。\n";
            string readStr = "";
            if (File.Exists(filePath))
            {
                readStr = File.ReadAllText(filePath);
                Console.WriteLine("读取的内容是" + readStr);
            }
            else
            {
                //不存在就创建   
                //这种方式是没有就创建,第二次写会将第一次的内容覆盖掉
                File.WriteAllText(filePath, writeStr);
                Console.WriteLine("写入成功");
            }

            //下面这种方式是追加的方式   
            File.AppendAllText(filePath, "\n这句话是后来追加的!\n"); 
#endif
#if false
            //Directory 和 Directoryinfo
            //Directory 静态类,无需实例化
            //Directoryinfo  非静态类,需要实例化    频繁操作某个目录时,使用这个类
            //GetDirectories  获取指定目录下所有的文件夹  不包含子文件夹
            string dirPath = "D:\\软件包";
            string[] dirAll = Directory.GetDirectories(dirPath);
            Console.WriteLine("所有的文件夹======================\n");
            foreach (var item in dirAll)
            {
                Console.WriteLine(item);
            }

            string[] fileAll = Directory.GetFiles(dirPath);
            Console.WriteLine("所有的文件======================\n");
            foreach (var item in fileAll)
            {
                Console.WriteLine(item);
            }
#endif

#if false
            //Environment
            int num = Environment.ProcessorCount;
            Console.WriteLine("处理器个数:{0}", num);
            Console.WriteLine("操作系统的版本:" + Environment.OSVersion);
            Console.WriteLine("name:" + Environment.MachineName);
            Console.ReadKey(); 
#endif
           
            //FileStream类
            string filePath = "D:\\123.txt";
            string writeStr = "床前明月光,\n疑是地上霜,\n举头望明月,\n低头思归乡。\n";
            //File.Delete(filePath);
            if (File.Exists(filePath))
            {
                //读取
                FileStream fileS = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
                byte[] readBytes = new byte[fileS.Length];
                fileS.Read(readBytes, 0, readBytes.Length);
                string readStr = System.Text.Encoding.UTF8.GetString(readBytes);
                Console.WriteLine(readStr);
                fileS.Close();
            }
            else
            {
                //创建
                FileStream fileS = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
                byte[] writeBytes = System.Text.Encoding.UTF8.GetBytes(writeStr);  //将字符串转换成字节数粗
                fileS.Write(writeBytes, 0, writeBytes.Length);
                Console.WriteLine("写入成功");
                fileS.Close();
            }

            //追加数据  方法一  通过使用Seek的方式  将光标移动到文件结尾
            //FileStream fileS2 = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
            //byte[] writeBytes2 = System.Text.Encoding.UTF8.GetBytes(writeStr);  //将字符串转换成字节数粗
            将文件流移动到文件末尾  从末尾追加
            //fileS2.Seek(0, SeekOrigin.End);
            //fileS2.Write(writeBytes2, 0, writeBytes2.Length);
            //Console.WriteLine("追加成功");
            //fileS2.Close();

            //方法二   直接使用Append的方式
            FileStream fileS2 = new FileStream(filePath, FileMode.Append, FileAccess.Write);
            byte[] writeBytes2 = System.Text.Encoding.UTF8.GetBytes(writeStr);  //将字符串转换成字节数粗

            fileS2.Write(writeBytes2, 0, writeBytes2.Length);
            Console.WriteLine("追加成功");
            fileS2.Close();

            Console.ReadKey();
        }
    }
}

 

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

motm_lala

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值