C#读操作(字节/字符)Filestream、File、StreamReader
写文件官方demo
https://docs.microsoft.com/zh-cn/dotnet/api/system.io.streamreader.readline?redirectedfrom=MSDN&view=netframework-4.8
方法一:使用Filestream,将文本一次性全部转换为字节,之后转换为string显示在text中
OpenFileDialog fd = new OpenFileDialog();
fd.Filter = "文本文件|*.txt"; //打开文件的类型
if (fd.ShowDialog() == DialogResult.OK)
{
fn = fd.FileName;
FileStream fs = new FileStream(fn, FileMode.Open, FileAccess.Read);
int n = (int)fs.Length;
byte[] b = new byte[n];
int r = fs.Read(b, , n);
textBox3.Text = Encoding.Default.GetString(b, , n);
方法二:使用Filestream,逐字节读取文本,后将字节转换为string显示在text中
FileStream fs = new FileStream(fn, FileMode.Open, FileAccess.Read);
long n = fs.Length;
byte[] b = new byte[n];
int cnt, m;
m = ;
cnt = fs.ReadByte();
while (cnt != -)
{
b[m++] = Convert.ToByte(cnt);
cnt = fs.ReadByte();
}
textBox3.Text = Encoding.Default.GetString(b)
方法三:直接使用File的Read All Text 函数将文本文件内容全部读入text
textBox.Text = File.ReadAllText(fn, Encoding.Default);
方法四:使用StreamReader,将文本中的的内容逐行读入text
StreamReader sr = new StreamReader(fn, Encoding.Default);
string line = sr.ReadLine();
while (line != null)
{
textBox.Text = textBox.Text + line + "\r\n";
line = sr.ReadLine();
}
方法五:使用StreamReader中的ReadToEnd()函数,将文本中的内容全部读入text
StreamReader sr = new StreamReader(fn, Encoding.Default);
textBox.Text = sr.ReadToEnd();
来源“https://blog.csdn.net/swin16/article/details/80256123”
注解
TextReader 类是抽象类。 因此,不要在代码中对其进行实例化。 StreamReader 类派生自 TextReader,并提供成员的实现以从流中读取。 下面的示例演示如何使用 StreamReader.ReadAsync(Char[], Int32, Int32) 方法读取文件中的所有字符。 它在将字符添加到 StringBuilder 类的实例之前,检查每个字符是否为字母、数字或空格。
注解
TextReader 是 StreamReader 和 StringReader的抽象基类,分别从流和字符串读取字符。 使用这些派生类打开文本文件以读取指定范围内的字符,或创建基于现有流的读取器。
https://docs.microsoft.com/zh-cn/dotnet/api/system.io.textreader?redirectedfrom=MSDN&view=netframework-4.8
C#读操作(字节/字符)Filestream、File、StreamReader的更多相关文章
- C#对文件/目录的操作:Path、File、Directory、FileStream、StreamReader、StreamWriter等类的浅析
以下类的命名空间都是:System.I/0; 一.Path:主要对文件路径的操作! 常用方法: String path=@"C:\a\b\c\123.txt"; 1-1.Path. ...
- 文件读写(三)利用FileStream类操作字节数组byte[]、BinaryFormatter、内存流MemoryStream
一.Stream类概述 在.NET Framework中,文件和流是有区别的.文件是存储在磁盘上的数据集,它具有名称和相应的路径.当打开一个文件并对其进行读/写时,该文件就称为流(stream).但是 ...
- python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: #/usr/bin/env ...
- day3--集合、文件操作、字符编码与转换、函数(递归,lambda,filter,map)、字典排序
list1 = set([1, 2, 3, 4, 5, 6, 5, 5, 5])list2 = set([11, 2, 36, 'a', 5, 6, 5, 5, 5])list3 = set([1, ...
- 文件操作总结 (Path,Directory,File)
Path类就是对字符串的操作,与实际的文件没有任何关系 属性: Path.GetFileName("路径"), //获取文件名带后缀: Path.GetFileNameWithou ...
- python的读写和写读操作
# 读写操作 (读写操作是正常的)f = open('log',mode='r+',encoding='utf-8') # log是文件名 print(f.read()) f.write(" ...
- FileInputStream 原理总结 把文件作为字节流进行读操作
package io; import java.io.FileInputStream; import java.io.IOException; public class IOUtil { /** * ...
- python 基础之文件读操作
创建一个名为‘尘曦’的文件内容如下 Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. ...
- CI中获取读操作的结果集行数+获取写操作的影响行数
本质:读操作,用mysql_num_rows函数,写操作用mysql_affected_rows函数 mysql_num_rows() 返回结果集中行的数目.此命令仅对 SELECT 语句有效.要取得 ...
- LVS+Keepalived实现MySQL从库读操作负载均衡
http://www.osyunwei.com/archives/7464.html (学习运维知识好站) 说明: 操作系统:CentOS 5.X 64位 MySQL主服务器:192.168.21.1 ...
随机推荐
- 2018 南京预选赛 J Sum ( 欧拉素数筛 、Square-free Number、DP )
题目链接 题意 : 定义不能被平方数整除的数为 Square-free Number 定义 F(i) = 有几对不同的 a 和 b 使得 i = a * b 且 a .b 都是 Square-free ...
- 6.Servlet、Filter过滤器以及监听器
Servlet 是运行在Web服务器端的Java程序,它使用Java语言编写,与Java程序的区别是Servlet对象主要封装了对HTTP请求的处理,并且它的运行需要Servlet容器的支持,在Jav ...
- [Python] 等号赋值, copy, deepcopy的区别
参考链接: 1. 介绍python中的可变类型与不可变类型:https://blog.csdn.net/answer3lin/article/details/86430074 (也可以参考转载博客 P ...
- [CSP-S模拟测试]:A(数学)
题目传送门(内部题44) 输入格式 一行四个整数,分别表示$S,T,a,b$. 输出格式 输出最小步数,数据保证有解. 样例 样例输入: 10 28 4 2 样例输出: 数据范围与提示 样例解释: 先 ...
- Android学习_7/26
四种基本布局 1. 线性布局(LinearLayout) android:layout_gravity:指定控件在布局中的对齐方式 android:gravity:指定文字在控件中的对齐方式 andr ...
- php laravel左连接leftJoin多条where语句
通常情况下我们在做leftjoin连接时需要对不止一个条件进行进行匹配,这时候就需要使用闭包方式,如下: leftjoin('db', function ($join) {···}); leftjoi ...
- better-scroll 的介绍
配置项中的 probeType 属性,是number,当值为 0 ,不会实时监听 scroll 事件,设置为 2 - 3 ,可以实时监听 scroll 事件 pullUpload 选项,设置为 fal ...
- vue——父组件调用子组件
<template> <div> child1 </div> </template> <script> export default { n ...
- 一、基础篇--1.2Java集合-HashMap和ConcurrentHashMap的区别【转】
http://www.importnew.com/28263.html 今天发一篇”水文”,可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍.本来以为花不了多少时间的,不 ...
- PHP 分页+查询
首先是主页面,与上篇分页页面相同 <table width="100%" border="1" cellpadding="0" cel ...