c#文件读取和写入的方式总结

简介: 1.使用FIleStream(它存储或者读取都是用BYTE数组或者是BYTE)       1.1文件写入部分:                                     string path = "C:\\test.


1.使用FIleStream(它存储或者读取都是用BYTE数组或者是BYTE)

      1.1文件写入部分:

                                    string path = "C:\\test.txt";
                            
                            if (File.Exists(path))      ///如果文件存在,那么删除文件 

                                     File.Delete(path);

                            FileStream fs = File.Open(path, FileMode.Create);         ///这里第二个表示如果文件不存在,则重新建立一个新的
                            ///FileStream fs = File.Open(path, FileMode.Append);  ///如果要追加内容时用这个

                          

                            fs.Write(bs, 0, bs.Length);                     ///这里的bs是一个数组byte[]
                      
                            fs.Close();

 

     1.2文件读取部分:

                   string str = "C:\\test.txt";
                        if (!File.Exists(str))     ///检测文件是否存在
                           {
                                       MessageBox.Show("文件不存在,请查看客户端是否已经上传数据!");
                           }
                       else
                          {   
                                 FileStream fop = File.OpenRead(str);
                                 byte[] arr = new byte[1000];
                                 while (fop.Read(arr, 0, arr.Length) > 0)    ///这个循环会将文件所有的内容都读取出来
                                  {
                                  ClientSocket[1].Send(arr, 0, arr.Length,0);
                                  }
                                 fop.Close();
                             }

 

2.StreamWriter和StreamReader(操作对象是字符或者字符串)

       2.1文件读取部分:

                string path="C:\\TEST.txt";

                string st = "";
               if (!File.Exists(path))
                    MessageBox.Show("文件不存在,请先新建一个!");
              else
                  {  

                      byte[] b=new byte[10];
                      StreamReader sr = new StreamReader(path);
                      while ((st = sr.ReadLine()) != null)
                           {
                              tb.AppendText(st);
                             MessageBox.Show(st);
                          }
                     sr.Close();
                
                 }

 

       2.2文件写入部分

             if (File.Exists(path))
                        File.Delete(path);
              StreamWriter sw = new StreamWriter(path,true);  /// true表示文件存在就将内容加在后面,false表示覆盖内容
              sw.Write("today is a good day!");
              sw.Close();

 

3.使用binaryreader和binarywriter进行文件读写操作(可以对任何基本数据类型进行操作)

              binaryreader提供了readstring,readbyte,readboolean,readint,readdouble等方法来读取不同类型的数据,而binarywriter则提供write()方法将各种不同类型的值写入当前流(也就是write方法的参数可以是任何基本数据类型)。下面以存储和读取double类型的数据来举例。

     3.1 binarywrite写入数据

                                FileStream fs=File.Create(path1);
                        BinaryWriter bw = new BinaryWriter(fs);
                        bw.Write(100.123);
                        bw.Write(200.524);
                        bw.Close();
                        fs.Close();

     3.2 binaryreader读取数据

                               FileStream fs1 = new FileStream(path1, FileMode.Open);
                       BinaryReader br = new BinaryReader(fs1);
                       Console.WriteLine("{0}",br.ReadDouble());
                       Console.WriteLine("{0}", br.ReadDouble());
                       br.Close();
                       fs.Close();

目录
相关文章
|
存储 SQL 关系型数据库
PostgreSQL系统字段cmin和cmax详解
1.cmin和cmax是什么 PG中每个表都包含了一些系统字段,其中包括cmin和cmax。 cmin:插入该元组的命令在插入事务中的命令标识(从0开始累加) cmax:删除该元组的命令在插入事务中的命令标识(从0开始累加) 可以在Select命令的输出列表中显式地指定系统字段。
3342 0
|
虚拟化
解决ESXI不支持USB移动硬盘
解决方式: 采用PCI设备直通方式分配给虚拟子机使用。前提: ESXI主机需支持PCI设备直通功能。(亲测技嘉H61、H81不支持如下图示)在技嘉H110和B250亲测成功 实验环境 主机:技嘉B250M主板系统:ESXI 6.0U3PCI转USB卡: IT-CEO PCI-E转USB3.0双口扩展卡 操作过程 使用vSphere Client连接到ESXi主机,在"配置→高级设置→编辑直通",在"将设备标记为可直通"对话框中,勾取插入的PCI转USB设备。
17027 0
|
9月前
|
C# 开发工具 C++
code runner 运行C#项目
本文介绍了如何修改Code Runner设置使 Visual Studio Code (VS Code) 能直接运行完整的 C# 项目。传统方式依赖 cscript 工具,仅支持 .csx 文件,功能受限且已停止维护。新配置使用 `dotnet run` 命令,结合一系列炫酷的cmd指令,将指令定位到具体的csproj文件上进行运行。
432 38
STM32学习笔记(4) 高级定时器-两路互补的PWM输出(带死区和刹车控制)
原理:当捕捉到信号的跳变沿时,将CNT的值所存到捕获寄存器CCR中,然后把两次的值相减,就可以得到脉宽或者频率。
2641 0
|
缓存 安全 Unix
深入探索Linux中的qemu-ga命令
**QEMU的qemu-ga是虚拟机内的守护进程,提供带外通道管理guest OS,如文件操作、关机、休眠等。它通过virtio-serial通信,特点是安全、高效、灵活。例如,使用`virsh qemu-agent-command`执行虚拟机内部命令。最佳实践包括安装配置agent、设置黑名单、考虑安全和性能、定期备份及利用社区资源。**
|
分布式计算 容灾 大数据
MaxCompute( 原名ODPS)大数据容灾方案与实现(及项目落地实例)专有云
一,背景与概述    复杂系统的灾难恢复是个难题,具有海量数据及复杂业务场景的大数据容灾是个大难题。    MaxCompute是集团内重要数据平台,是自主研发的大数据解决方案,其规模和稳定性在业界都是领先的。
6574 0
|
传感器 开发框架 API
【HaaS Python 硬件积木】 BMP280气压传感器
【HaaS Python 硬件积木】 BMP280气压传感器
470 0
|
网络协议 SDN 网络架构
用TCP穿透NAT(TCP打洞)的实现
1. TCP穿透原理:     我们假设在两个不同的局域网后面分别有2台客户机A和 B,AB所在的局域网都分别通过一个路由器接入互联网。互联网上有一台服务器S。     现在AB是无法直接和对方发送信息的,AB都不知道对方在互联网上真正的IP和端口, AB所在的局域网的路由器只允许内部向外主动发送的信息通过。
5511 0
|
机器学习/深度学习 SQL 存储
阿里云 PAI 预测算法模块介绍 | 学习笔记
快速学习阿里云 PAI 预测算法模块介绍
737 0
阿里云 PAI 预测算法模块介绍 | 学习笔记
|
弹性计算 Java Linux
ECS使用体验,从小白到成功部署web项目+frp内网穿透
初次尝试使用ECS,在这两周时间体验内,我从完完全全的小白成长到能够部署一个web项目并学会使用frp内网穿透。在这篇文章中我将和大家分享我的成长经历和使用心得。
850 1
ECS使用体验,从小白到成功部署web项目+frp内网穿透