NET中级课--文件,流,序列化2
1.流的类型体系:
基础流 装饰器流 包装器类 帮助类
2. stream
file~ memory~ network~
stream是个抽象类,其中的方法要么抽象要么虚拟(virtual)
3.装饰器流:继承自stream类,又包含了stream类的引用。如bufferedstream Gzipstream
装饰器模式的目的:为现有类添加功能。
4.包装器类:注意是类,而不是流。即它们不是流类型但包含了流的引用,提供了对流进行操作的简便方法。
用于读取文件内容。
textreader textwriter是基类,这俩个类和流无关,只是定义了读取和写入字符数据的方式。
streamreader streadwriter 是子类。streamreader:将流中内容读取为字符。streamwrite将字符写入流。
stringreader,stringwirte也是子类,不过只是读取和处理字符串不处理流。
string text=@"产品:Lumia 920
售价:4998";
stringreader reader=new stringreader(text);
int c =reader.read();
console.write((char)c); //输出: 产 char[] buffer=new char[8];
rader.read(buffer,0,buffer.length);
console.write(string.join("",buffer));//品:Lumia //假设上面的text字符串保存在文件中 只要将stringreder换成streamreader
filestream fs=new filestrem(......);
streamreader reader=new streamreader(fs,encoding.getencode("GB2312"));
编码方式:凡是涉及到文本文件必有编码问题。编码定义了字节如何转换成可读的字符或者文本。可以想象是字节和字符的对应关系表。
5.帮助类 与流的关系不很密切,但可以使得文件流的操作简单。
file fileinfo path directory diretoryinfo
filestream fs=file.create("1.txt');
NET中级课--文件,流,序列化2的更多相关文章
- NET中级课--文件,流,序列化1
1.对于机器的角度来看,任何文件都是二进制的0和1. 2. 位:bit,一个1或0就是1位. 字节:byte,每8位一个字节.一个字节的范围就是00000000到1111111,换成10进制就是0 ...
- NET中级课--文件,流,序列化3
1.序列化:将对象及状态保存起来. 反序列化就是逆操作. 2.NET提供了一个接口:System.runtime.serialization.IFormatter接口, 还有实现了这个接口的类Bina ...
- 文件I/O:文件流→序列化
★文件流 文件操作是最简单最直接也是最容易想到的一种方式,我们说的文件操作不仅仅是通过FileInputStream/FileOutputStream这么“裸”的方式直接把数据写入到本地文件(像我以前 ...
- .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化
1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...
- Java总结——文件&流
最近学习了Java的输入输出,脑子里有两点乱,不过比之前的思路好像清晰了很多.脑子刚刚接收这些信息的时候,整个就是懵逼的,又是文件又是流的,文件到底干嘛的,流到底干嘛的?恩,后来,想了想,其实也不难理 ...
- [.net 面向对象程序设计进阶] (9) 序列化(Serialization) (一) 二进制流序列化
[.net 面向对象程序设计进阶] (9) 序列化(Serialization) (一) 二进制流序列化 本节导读: 在.NET编程中,经常面向对象处理完以后要转换成另一种格式传输或存储,这种将对 ...
- Java IO详解(六)------随机访问文件流
File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...
- web api 如何通过接收文件流的方式,接收客户端及前端上传的文件
服务端接收文件流代码: public async Task<HttpResponseMessage> ReceiveFileByStream() { var stream = HttpCo ...
- IO流--序列化流与反序列化流
IO流--序列化流与反序列化流: 序列化流:把对象当做流一样写入到文本文件中 ObjectOutputSream(); 反序列化流:把文本文件中的流对象还原成对象ObjectInputSream(): ...
随机推荐
- 短信猫编程的一些资料1(At指令发送短信)
现在正在做TC35的项目, 下面分享一下这几天在网上找到的资料: 手机 SMS PDU 格式参考手册 1.相关的GSM AT指令 与SMS有关的GSM AT指令(from GSM0 ...
- (转)第一天 XHTML CSS基础知识 文章出处:标准之路(http://www.aa25.cn/div_css/902.shtml)
欢迎大家学习<十天学会web标准>,也就是我们常说的DIV+CSS.不过这里的DIV+CSS是一种错误的叫法,建议大家还是称之为web标准. 学习本系列教程需有一定html和css基础,也 ...
- Label 表达式绑定
Text='<%#"总金额为: "+Convert.ToString(Convert.ToDecimal(TextBox1.Text)*Convert.ToInt32(Tex ...
- Sql Server 查看所有存储过程或视图的位置及内容
and a.object_id = b.object_id and a.[type] in ('P','V','AF') order by a.[name] asc 通过这个sql语句可以查到sql ...
- Oracle instr 及 like
原文: http://www.cnblogs.com/crazyjava/archive/2012/10/31/2748202.html instr(string1,string2[,start_po ...
- delete语句与reference约束 FK_subplan_job_id冲突问题,导致job无法删除解决办法
在SQL Server 2008上删除已运行维护计划后,维护计划job没有自动删除掉,手工再删除维护计划job,提示删除失败. 错误现象:delete 语句与 reference 约束"F ...
- Js 时间间隔计算(间隔天数)
function GetDateDiff(startDate,endDate) { var startTime = new Date(Date.parse(startDate.replac ...
- C#基本语句与C++区别
条件语句必须为bool表达式 int a = 1; if(a) { ... } 在c++中可以,但c#报错 但 bool b = true;//不能写成b = 1了: if(b) { ... } 是可 ...
- poj1094 topsort
Sorting It All Out Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 32275 Accepted: 11 ...
- libtcmalloc 简单使用
下载地址: https://github.com/gperftools/gperftools这个编译很简单,直接进入vsprojects\libtcmalloc_minimal,用vc编译即可,整个过 ...