stream~filestream
http://blog.csdn.net/feliciafay/article/details/6157356
http://blog.csdn.net/feliciafay/article/details/6157353
□简介StreamReader
以Stream为服务中心。那么这个stream一定是文件的stream么?不一定,可能是文件的,也可能是其它的,比如从HttpWebResponse转化而来的Stream。
构造函数的两大类
1从stream中读取
StreamReader(Stream) Initializes a new instance of the StreamReader class for the specified stream.
2从File中读取
StreamReader(String) Initializes a new instance of the StreamReader class for the specified file name.
成员函数
1. Peek()
Returns the next available character but does not consume it.
2. Read()
Reads the next character from the input stream and advances the character position by one character.
3. Read(Char[], Int32, Int32)
Reads a specified maximum of characters from the current stream into a buffer, beginning at the specified index.
4. ReadBlock()
Reads a maximum of count characters from the current stream, and writes the data to buffer, beginning at index.
5. ReadLine()
Reads a line of characters from the current stream and returns the data as a string.
6. ReadToEnd()
Reads the stream from the current position to the end of the stream.
StreamReader is designed for character input in a particular encoding, whereas the Stream class is designed for byte input and output. Use StreamReader for reading
lines of information from a standard text file.
□简介 FileStream
是以文件为服务中心的。Exposes a Stream around a file
□FileStream的write()
是把byte[]写入到Stream中
public override void Write(byte[] array,int offset,int count)
array
Type: System.Byte[]
The buffer containing data to write to the stream.
offset是源头的偏移量
Type: System.Int32
The zero-based byte offset in array at which to begin copying bytes to the current stream.
count
Type: System.Int32
The number of bytes to be written to the current stream
return value 无返回值
□例 FileStream的read()
是把Stream读入到byte[]数组中
public override int Read(byte[] array,int offset,int count)
array
Type: System.Byte[]
When this method returns, contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current
source.
offset 是目标的偏移量
Type: System.Int32
The byte offset in array at which the read bytes will be placed.
count
Type: System.Int32
The maximum number of bytes to read.
Return Value
Type: System.Int32
The total number of bytes read into the buffer. This might be less than the number of bytes requested if that number of bytes are not currently available, or
zero if the end of the stream is reached.
小结:
不管是FileStream的read()还是write()操作,offset这个参数永远只是指byte[]数组中的偏移量。具体地说,在read()中,offset指的是目标的偏移量,在write()中,offset指的是源的偏移量。
例
FileStream fsSource = new FileStream(pathSource,FileMode.Open, FileAccess.Read)
byte[] bytes = new byte[fsSource.Length];
int numBytesToRead = (int)fsSource.Length;
int numBytesRead = 0;
while (numBytesToRead > 0)
{
// 注意这里的anything这个说法很重要:Read may return anything from 0 to numBytesToRead返回的字节数可能为任意比numBytesToRead小的数。
int n = fsSource.Read(bytes, numBytesRead, numBytesToRead);
// Break when the end of the file is reached.
if (n == 0)
break;
numBytesRead += n;
numBytesToRead -= n;
}
□还有哪些Stream?
BufferedStream
FileStream
MemoryStream
UnmanagedMemoryStream
Stream
StreamReader
StreamWriter
□还有哪些reader和writer?
BinaryReader
Reads primitive data types as binary values in a specific encoding.
BinaryWriter
Writes primitive types in binary to a stream and supports writing strings in a specific
encoding.
TextReader
Represents a reader that can read a sequential series of characters.
TextWriter
Represents a writer that can write a sequential series of characters. This class is abstract.
StringReader
Implements a TextReader that reads from a string.
StringWriter
Implements a TextWriter for writing information to a string. The information is stored in an underlying StringBuilder.
StreamReader
Implements a TextReader that reads characters from a byte stream in a particular encoding.
StreamWriter
Implements a TextWriter for writing characters to a stream in a particular encoding.
1.StreamReader的read()
StreamReader的read()把Stream读入到char[]中。
public override int Read(char[] buffer,int index,int count)
buffer
Type: System.Char[]
When this method returns, contains the specified character array with the values between index and (index + count - 1) replaced by the characters read from the
current source.
index 是目标数组的偏移量
Type: System.Int32
The index of buffer at which to begin writing.
count
Type: System.Int32
The maximum number of characters to read.
Return Value
Type: System.Int32
The number of characters that have been read, or 0 if at the end of the stream and no data was read. The number will be less than or equal to the count
parameter, depending on whether the data is available within the stream.
2.FileStream的read()
FileStream的read()把Stream读入到byte[]数组中
public override int Read(byte[] array,int offset,int count)
array
Type: System.Byte[]
When this method returns, contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current
source.
offset 是目标数组的偏移量
Type: System.Int32
The byte offset in array at which the read bytes will be placed.
count
Type: System.Int32
The maximum number of bytes to read.
Return Value
Type: System.Int32
The total number of bytes read into the buffer. This might be less than the number of bytes requested if that number of bytes are not currently available, or
zero if the end of the stream is reached.
小结:基本相似,但是目标数组的类型不同,一个为char[],一个为byte[]。
stream~filestream的更多相关文章
- C#基础-FileStream
一.FileStream的基础知识 属性: CanRead 判断当前流是否支持读取,返回bool值,True表示可以读取 CanWrite 判断当前流是否支持写入, ...
- MemoryStream和FileStream
一,FileStream对象的数据来自文件,而MemoryStream对象的数据来自内存缓冲区.这两个类都继承自Stream类. 二,抽象基类System.IO.Stream代表流,它提供Read和W ...
- .NET Core装饰模式和.NET Core的Stream
该文章综合了几本书的内容. 某咖啡店项目的解决方案 某咖啡店供应咖啡, 客户买咖啡的时候可以添加若干调味料, 最后要求算出总价钱. Beverage是所有咖啡饮料的抽象类, 里面的cost方法是抽象的 ...
- .NET Core/.NET之Stream简介
之前写了一篇C#装饰模式的文章提到了.NET Core的Stream, 所以这里尽量把Stream介绍全点. (都是书上的内容) .NET Core/.NET的Streams 首先需要知道, Syst ...
- c#Stream学习笔记
C# 温故而知新:Stream篇(—) http://www.cnblogs.com/JimmyZheng/archive/2012/03/17/2402814.html 基本概念重点看这一篇. 什么 ...
- Stream(流)的基本操作
//把流转化为文件 public static void StreamToFile(Stream stream, string filepath) { byte[ ...
- 【.Net】Byte,Stream,File的转换
引言 文件的传输和读写通常都离不开Byte,Stream,File这个类,这里我简单封装一下,方便使用. 帮助类 public static class FileHelper { / ...
- .NET Core/.NET之Stream简介 Rx.NET 简介
.NET Core/.NET之Stream简介 之前写了一篇C#装饰模式的文章提到了.NET Core的Stream, 所以这里尽量把Stream介绍全点. (都是书上的内容) .NET Core ...
- 使用C# (.NET Core) 实现装饰模式 (Decorator Pattern) 并介绍 .NET/Core的Stream
该文章综合了几本书的内容. 某咖啡店项目的解决方案 某咖啡店供应咖啡, 客户买咖啡的时候可以添加若干调味料, 最后要求算出总价钱. Beverage是所有咖啡饮料的抽象类, 里面的cost方法是抽象的 ...
随机推荐
- python模范发送邮件的时候,才smtp.connect的时候总是抛出错误
python发送邮件的时候,总是出现:[Errno 10060] 错误码 根据debug得到在connect的时候出错. 认真检查了下host,没有错呀~应该就是服务器的host. 查看了下网上的一些 ...
- Dropbox 用什么语言开发的?(Python在各个平台都是全能的,特别是有PyObjC真没想到)
Dropbox 绝大部分是用 Python 开发的.用到 Python 的地方有:服务器后台.客户端.Dropbox 网页版前段.API 后台.数据分析. 在服务器端.桌面版客户端使用的是 Pytho ...
- Delphi泛型评测(30篇)
http://www.cnblogs.com/jxgxy/category/216671.html
- C# 操作IE浏览器
最近的一个B/S系统中,用到了指模录入,当用户按了手指摸之后,要在IE浏览器的一个文本框上显示用户的姓名.由于要监控指模机的输入,因此客户端需要装一个.net控制台程序,通过此控制台程序监控指模机.这 ...
- ubuntu下配置安装conky
由于默认的conky配置不好看,于是下载了一些配置,网上一抓一大把. 首先 sudo apt-get install conky-all 然后下载想要的配置文件,下载下来的是压缩文件,解压就行了,解 ...
- java设计模式--行为型模式--中介者模式
怎么理解中介者模式,我姑且用房产中介来理解吧.呵呵 中介者模式: 中介者模式 概述 用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之 ...
- 常用财务软件:用友,金蝶,新中大,速达,管家婆,金算盘,远方,远光,金钥匙,润衡,浪潮,上海博科,易商,任我行,千方百剂,智管,小蜜蜂,SAP,ORACLE,SSA,QAD,MAPICS,JDE。
常用财务软件:用友,金蝶,新中大,速达,管家婆,金算盘,远方,远光,金钥匙,润衡,浪潮,上海博科,易商,任我行,千方百剂,智管,小蜜蜂,SAP,ORACLE,SSA,QAD,MAPICS,JDE. 申 ...
- ubuntu cenots 禁止本地登陆
auth required pam_succeed_if.so user != root
- Unix命令行学习
Listing files and directories ls 显示你当前目录的文件 ls -a 显示你千亩目录的文件(包括隐藏文件)ls <name1>/<name2> 显 ...
- java连接oracle数据库详细代码
详细代码: import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;imp ...