首页 > 其他分享 >浅谈“文件与文件流”的区别

浅谈“文件与文件流”的区别

时间:2023-09-10 14:44:50浏览次数:43  
标签:文件 fs 浅谈 区别 FileStream str Buffers 字节

文件与文件流的区别(自己的话):

       在软件开发过程中,我们常常把文件的“读写操作”,与“创造、移动、复制、删除操作”区分开来。其中,文件的“读写操作”是由System.IO命名空间下fileStream类控制的。而文件的“创造、移动、复制、删除操作”是由file类控制的。

       当然了,还有很多和这两个类功能相似的类。这里笔者不过多介绍,本文仅仅是做一次对文件操作的科普。熟悉了这两个类后,再去看其他功能类似的类就会轻松很多了。

 

文件:file类简单介绍

       File类支持对文件的基本操作,它包括用于创建、复制、删除、移动和打开文件的静态方法。

 创建文件:

​//创建文件
File.Create(str);    //str是string类型变量,其值为文件的路径,包括文件名,如str="D:\text.txt"

判断文件存在:

​//判断文件存在
File.Exists(str);    //str为string变量,为文件路径,包括文件名,如str="D:\text.txt"

文件流:fileStream类简单介绍

输入流与输出流

输入流:可以简单把输入流理解为“向文件内要写入的数据”,如我想向文本文档写入“HELLO”,那么这个字符串就是输入流。

输出流:同理,可以把输出流理解为“从文件内读取的数据”,如一个文本文档内有数据“Hello,World”,读取这个文件,那么这个“Hello World”就是输出流。

利用fileStream类读取数据

​//以只读方式创建FileStream对象
FileStream fs=new FileStream(@"D:\text.txt",FileMode.OpenOrCreate);
//得到文件的长度
long length = fs.Length;
//创建一个字节数组,大小是文件的长度
byte[] Buffers=new byte[length];
//将文件流中的数据读取到字节数组中
fs.Read(Buffers,0,Buffers.Length);
//将字节数组中的二进制编译为字符串
string content = Encoding.Default.GetString(Buffers,0,Buffers.Length);
//将字符串在提示框中输出
MessageBox.show(content);
//关闭文件流
fs.Close();

利用fileStream类写入数

​//以只写方式创建FileStream对象
FileStream fs=new FileStream(@"D:\text.txt",FileMode.OpenOrCreate,FileAccess.Write);
//创建一个字节数组
byte[] Buffers;
//获取传入文件的字符串
string str="Hello,World";
//设置一个字节数组大小
Buffers =new byte[str.length * 2];
//将字符串转成二进制数据存入字节数组
Encoding.Default.GetBytes(str,0,str.length,Buffers,0);
//将字节数组写入文件
fs.Write(Buffers,0,Buffers.length);
//关闭文件流
fs.Close();

 

标签:文件,fs,浅谈,区别,FileStream,str,Buffers,字节
From: https://www.cnblogs.com/qianjindelaowu/p/17691201.html

相关文章

  • 使用syncthing共享文件及文件夹的方法
    原文链接:使用syncthing共享文件及文件夹的方法hello,大家好啊,今天给大家介绍一个在统信UOS桌面操作系统上使用的远程共享图形化工具,我们在之前的文章中介绍了使用smb文件夹共享的方式uos桌面操作系统上smb共享无法连接怎么办,今天给大家介绍一个使用syncthing共享文件及文件夹的方法......
  • Java中equals和==的区别
    ====比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。1、比较的是操作符两端的操作数是否是同一个对象。2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。3、比较的是地......
  • mybatis核心配置文件以及mapper文件的配置
    config文件<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>......
  • vscode运行Python调取文件报错 运行调试配置的问题
    报错原因:报错信息提示的是没有那个文件,但是那明明是有文件的,而且在终端运行没问题,这是因为vscode配置的原因,小伙伴按下面的方法解决即可!!!解决办法:"cwd":${fileDirname}把这个加到配置文件里: ......
  • My头文件(1)
    自定义头文件"almighty.h"持续更新头文件内部内容:#ifndef_ALMIGHTY_#define_ALMIGHTY_#include<bits/stdc++.h>usingnamespacestd;#definesdsigned#defineudunsigned#definectconst#definescstatictypedefinti4;typedeflonglongi8;typedeffl......
  • Springboot项目中pom.xml配置文件无法解析下载oracl数据库解决办法(Cannot resolve com
    网上说是因Oracle的版权问题,导致maven下载不下来ojdbc各个版本的jar包。就会报错Cannotresolvecom.oracle:ojdbc6:11.2.0.1.0 经过一番百度,找到了一个适用的解决方法,如下操作即可:1.在终端或客户端机器上找到oracle安装驱动目录:例如:E:\myorcl\product\11.2.0\dbhome_1\j......
  • Flink 1.17教程:输出算子之输出到文件
    输出到文件Flink专门提供了一个流式文件系统的连接器:FileSink,为批处理和流处理提供了一个统一的Sink,它可以将分区文件写入Flink支持的文件系统。FileSink支持行编码(Row-encoded)和批量编码(Bulk-encoded)格式。这两种不同的方式都有各自的构建器(builder),可以直接调用FileSink的静态方......
  • cnpm : 无法加载文件 \npm\cnpm.ps1,因为在此系统上禁止运行脚本。 问题解决
    很久没有弄前端VUE了。最近用到的vscode进行前端摸索。在用NPM的时候,发现有点慢,于是切换到了cnpm。在使用cnpm进行运行的时候报错了。“cnpm:无法加载文件C:\Users\Administrator\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅https:/go.mi......
  • os.makedirs 与os.mkdir的区别, 参数解释,并举例
    os.makedirs和os.mkdir都是用于创建目录的函数,但它们之间有一些重要的区别。os.mkdir:os.mkdir用于创建单个目录,它不会创建多层目录结构,只会创建最底层的目录。如果指定的目录路径中的上层目录不存在,那么os.mkdir会引发一个FileNotFoundError错误。示例代码:importospath......
  • 人脸识别解决方案全套文件大合集,120份全新精选,有这个就够了
    一、人脸识别4个特点人脸识别和其他身份识别相比,有4个特点:1、便捷性。人脸是生物特征,不需要携带类似身份证的东西2、非强制性。识别的过程甚至不需要对象的配合,只要拍摄到人脸就可以进行识别,例如安防领域就是如此。3、非接触性。不需要跟设备进行接触,相比指纹更加安全一些。4、并行......