文件读取(filestream)
在stream中已经介绍过,文件读取应用filestream,其是以字节为单位读取文件的。在操作中,当应用filestream创建文件流,读取时应先定义一个字节数组,在转化成char类型,最后转化成string类型。我们其实可以通过streamreader/writer类来直接读取字符串。在此简单介绍一下,流的读取方式除了创建流类中自定义的read/write方法(通过byte类型进行),也可以通过其他读取类进行读取。streamreader/writer类,binaryread/write以及stringreader/writer均继承自textreader/writer抽象类,binaryreader/writer可以直接读取int,double,bool等数据类型,StreamReader/writer可直接读取字符串。
本例以filestream建立文件流,并通过StreamReader/writer进行读写。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO; namespace FilestreamandStreamreader
{
class Program
{
static void Main(string[] args)
{
string filePathName = "E:\\test.txt"; using (FileStream fs = new FileStream(filePathName, FileMode.Create, FileAccess.Write))
{
StreamWriter sw = new StreamWriter(fs);
sw.Write("LIU");
sw.WriteLine("Ljksdjfjk");
sw.WriteLine("chengjisih");
sw.Flush();
} using (FileStream fs = new FileStream(filePathName, FileMode.Open, FileAccess.Read))
{
StreamReader sr = new StreamReader(fs);
string str = sr.ReadToEnd();
Console.WriteLine(str);
fs.Position = ;//每次重新调用时,fs位置归零
Console.WriteLine(sr.ReadLine()); //fs.Position = 0;
//char[] chars = new char[10];
//sr.Read(chars, 0, 10);
//for (int i = 0; i < chars.Length; i++)
//{
// Console.WriteLine(chars[i]);
//} fs.Close();
Console.ReadKey();
} }
}
}
streamreader其构造函数重载很多,可以满足不同的需求,只要是构造函数的入口参数为流都可以用它来读取,比如httpwebreponse等的返回值等,上例中
StreamReader sr = new StreamReader(fs)语句,入口参数可以直接为路径,也可以为
StreamReader sr = new StreamReader(File。Create(。。。。));继承自textreader/writer的三个派生类其实就是一个流的三种读取器,离开这三个类,用建立流对象的自身的write/read方法依旧可以。 以上为对流概念的基本理解
文件读取(filestream)的更多相关文章
- C# Path类 FileStream(文件流) 与 File(文件) 读取的区别
1.采用文件流读取数据是一点一点从文件中读取数据对内存的压力相对较小;而采用文件读取数据是一下全部读取过来对内存造成的压力相对较大 2.File读取: string str = @"E:\Q ...
- C# 文件操作 把文件读取到字节数组
string zipfile = "c:\\a.zip"; //方法1 FileStream fs = new FileStream(zipfile, FileMode.Open) ...
- .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化
1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...
- 【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (下篇)
Universal Windows Platform(UWP)是微软Windows10专用的通用应用平台,其目的在于在统一操作系统下控制所有智能电子设备. 自从Unity 5.2之后,配合VS 201 ...
- 【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (上篇)
Universal Windows Platform(UWP)是微软Windows10专用的通用应用平台,其目的在于在统一操作系统下控制所有智能电子设备. 自从Unity 5.2之后,配合VS 201 ...
- 【基础巩固】文件流读写、大文件移动 FileStream StreamWriter File Path Directory/ ,m资料管理器(递归)
C#获取文件名 扩展名 string fullPath = @"d:\test\default.avi"; string filename = Path.GetFileName(f ...
- java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...
- php xml 文件读取 XMLReader
php xml 文件读取 <?php /** $xmlString = '<xml> <persons count="10"> <person ...
- 1-2 nodejs小节 文件读取
1.表达式 在命令行输入 node回车后,可以在后边输入相应的表达式,进行运算操作 2.阻塞文件读取 var data=fs.readFileSync('input.txt', 'utf-8') ...
随机推荐
- Python-基于向量机SVM的文本分类
项目代码见 Github: 1.算法介绍 2.代码所用数据 详情参见http://qwone.com/~jason/20Newsgroups/ 文件结构 ├─doc_classification.py ...
- opencv霍夫变换
霍夫变换不仅可以找出图片中的直线,也可以找出圆,椭圆,三角形等等,只要你能定义出直线方程,圆形的方程等等. 不得不说,现在网上的各种博客质量真的不行,网上一堆文章,乱TM瞎写,误人子弟.本身自己就没有 ...
- Windows10安装多个版本的PostgreSQL数据库,但是均没有自动注册Windows服务的解决方法
1.确保正确安装了PostgreSQL数据库,注意端口号不能相同 我的安装目录如图: 其中9.6版本的端口号为5432,10版本的端口号为5433,11版本的端口号为5434.若不知道端口号,可在Po ...
- js 判断字符串是否存在某个字符串
可使用String和Regexp对象的相关方法进行处理,如下 一.String对象方法 1.使用indexOf()方法,返回某个指定的字符串值在字符串中首次出现的位置.如果要检索的字符串值没有出现,则 ...
- MySQL数据库从复制及企业配置实践
在实际生产中,数据的重要性不言而喻: 如果我们的数据库只有一台服务器,那么很容易产生单点故障的问题,比如这台服务器访问压力过大而没有响应或者奔溃,那么服务就不可用了,再比如这台服务器的硬盘坏了,那么整 ...
- 校园网 虚拟机VMware Linux桥接模式 无法上网 问题
只是解决常见虚拟机桥接模式 无法上网问题,基本的百度都有 基本知识 虚拟机有三种网络连接模式:桥接模式,net模式,仅主机 桥接模式:同一网段允许的话,相当于一个独立的物理主机,独立ip net模式: ...
- Spark 学习笔记之 union/intersection/subtract
union/intersection/subtract: import org.apache.spark.SparkContext import org.apache.spark.rdd.RDD im ...
- JVM(三)初始化
字节码指令和符号引用.直接引用 1.主动引用和被动引用 主动引用:虚拟机规定只有满足四个情况的的情况下,才会进行主动引用. 被动引用:除过四种情况的引用是被动引用. 只有主动引用才会初始 ...
- Android_布局
<该文章参考各大博客以及书籍总结而来,如有问题欢迎指出^ ^> 一.五大传统布局+新布局 线性布局——LinearLayout 相对布局——RelativeLayout 帧布局——Fram ...
- 年薪500K工程师告诉你,python都能用来做什么?
一提到python,大家脑袋中都会想到「数据分析」.「爬虫」.「人工智能」这些词. 其实python并没有像如上所说的这样「专业」.「高深」的应用,对于初学者来说更是可以从一些超简单又有趣的小项目开始 ...