C#中FileStream与StreamReader/StreamWriter区别

C#中FileStream与StreamReader/StreamWriter区别FileStreamFileStream类不是静态类,表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。使用时需要创建对象,FileStream类既可以对文本文件进行读也可以对多媒体文件进行写,以字节数组的形式进…

大家好,又见面了,我是你们的朋友全栈君。

区别

FileStream类不是静态类,表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或 StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。使用时需要创建对象,FileStream类既可以对文本文件进行读也可以对多媒体文件进行写,以字节数组的形式进行读和写,多用于对大文件进行读写,区别于File类的是它对文件可进行分步读写,减小内存压力。StreamReader和StreamWriter类多用于对小文件读写。

StreamReader方法

string path = @"G:\桌面\111\1.txt";
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))//找到指定路径的文件,打开,读取;using自动释放资源并且关闭
{ 
   
	using (StreamReader sr = new StreamReader(fs,Encoding.Default ))
    { 
   
        Console.WriteLine(sr.ReadLine());//读取指定路径下文件的一行字符
        Console.WriteLine(sr.ReadToEnd());//读取指定路径下文件中所有内容
        while (!sr.EndOfStream)//没读到文件中最后一行数据就一直读,读取文件中所有内容
        { 
   
            Console.WriteLine(sr.ReadLine());
        }
    }
}

StreamWriter方法

string path = @"G:\桌面\111\1.txt";
using (FileStream fs=new FileStream(path, FileMode.Open, FileAccess.Write, FileShare.Write ))//using自动释放资源并且关闭
{ 
   
    using (StreamWriter sw = new StreamWriter(fs, Encoding.Default))
    { 
   
        sw.Write("哈哈");//在指定路径文件下写入文本
    }
}
Console.ReadKey();
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162878.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月21日 下午10:36
下一篇 2022年7月21日 下午10:36


相关推荐

  • 摩尔斯电码对照表—Morse code

    摩尔斯电码对照表—Morse code

    2026年3月18日
    2
  • 经典CNN网络:Resnet18网络结构输入和输出[通俗易懂]

    经典CNN网络:Resnet18网络结构输入和输出[通俗易懂]前言每当看到一个新的网络,总会思考,这个网络提出来有什么意义,解决了什么问题?Resnet18的提出,解决

    2022年5月25日
    176
  • iOS之深入解析Xcode 13正式版发布的40个新特性

    iOS之深入解析Xcode 13正式版发布的40个新特性一、前言Xcode13包括适用于iOS15、iPadOS15、tvOS15、watchOS8和macOSBigSur11.3的SDK。Xcode13ReleaseCandidate支持iOS9及更高版本、tvOS9及更高版本以及watchOS2及更高版本的设备上调试。Xcode13需要运行macOS11.3或更高版本的Mac。二、通用Xcode13包括对Swift并发编程的原生支持、对XcodeCloud持续集成和

    2022年4月29日
    150
  • web.xml 配置 contextConfigLocation

    web.xml 配置 contextConfigLocationweb xml 中 classpath 和 classpath nbsp nbsp 有什么区别 nbsp classpath 只会到你的 class 路径中查找找文件 nbsp classpath 不仅包含 class 路径 还包括 jar 文件中 class 路径 进行查找 nbsp 有时候会用模糊匹配的方式配置多配置文件 但是如果配置文件是在 jar 包里 模糊匹配就找不到了 可以用逗号隔开的方式配置多个配置文件

    2026年3月16日
    2
  • C#中关于Struct(结构体)介绍以及附带案例解释,一看就会,一学就懂系列[通俗易懂]

    C#中关于Struct(结构体)介绍以及附带案例解释,一看就会,一学就懂系列[通俗易懂]Struct结构体的含义:结构体的作用?结构体的特点?结构体的声明?结构体的注意事项?…

    2022年10月6日
    4
  • 呼叫中心系统云部署与自建模式区别

    呼叫中心系统云部署与自建模式区别云呼叫中心是基于计算机电话集成技术 CTI 和云计算技术 集成电话 移动电话 在线客服 email 短信等多种通讯方式的一体化企业综合信息服务系统平台 云呼叫中心 可以从两点去解释 从技术方面讲 呼叫中心使用了云技术 故被称为云呼叫中心 从服务模式上讲 毋须采购设备 购买简单的终端设备即可使用 足够的宽带 一台可上网的电脑即可实现呼叫应用 云呼叫中心不需要购买 安装昂贵的专业设备和系统 没有坐席数量的限制 多分布点集中管理 统一路由统一排队 当下较为热门的厂商例

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号