当前位置: 首页 > news >正文

.net 流——流的类型体系简单介绍


 

流的类型体系

 

基础流

装饰器流

包装器类

帮助类

继承自基本的stream

在基础Stream上添加的功能

数据传输

对文件流的操作变简单

 


    

基础流

 

Stream

对应的后备存储是文件

内存

网络资源

 

 

FileStream

MemoryStream

NetWorkStream

 

 

IsolatedStorgaeFileStream:

继承自FileStream

 

 

 

 

    感觉还是挺类Java的。


装饰器流

 

BufferdStream

DeflateStream

GZipStream

CryptoStream

AuthenticatedStream

System.io

System.IO.Compression

System.IO.Compression

System.Security.Cryptography

System.net.security

增强缓存

压缩

解压缩

加密解密

安全性

 

 联想装饰者模式,估计是在基本流上面加上一些其他功能,有点儿像对基本类型的功能上的扩展。

 

包装器类

 

介绍流的用于数据传输;

 

TextWriter

TextReader(定义的一组通用的,读取和写入字符数据的方式)

 

StreamReader

StreamWriter

1,继承自

TextWriter

TextReader,定义了一组通用的,读取和写入字符数据的方式

 

2,适用于读取和写入文本字符的场合

 

BinaryReader:用于向流中以二进制的方式写入基元类型

BinaryWriter:用于从流中读取基元类型

StringReader

StringWriter:

1,也继承自

TextWriter

TextReader,用于处理字符串

 

 

 

 

 

    

 #region StringReader,StringWriter的使用;

//                string text = @"姓名:水田如雅;
//                                年龄:20;
//                                性别:女";
//                StringReader reader = new StringReader(text);
//                int c = reader.Read();
//                Console.WriteLine((char)c);

//                char[] buffer = new char[7];
//                reader.Read(buffer, 0, buffer.Length);
//                Console.WriteLine(string.Join("", buffer));

//                string line = reader.ReadLine();
//                Console.Write(line);

//                string rest = reader.ReadToEnd();
//                Console.WriteLine(rest);

//                reader.Dispose();
//                Console.ReadKey();

            #endregion

            #region streamreader/StreamWriter的使用

                //FileStream fs = new FileStream("AboutVac.txt", FileMode.Open, FileAccess.Read);
                //StreamReader reader=new StreamReader(fs,Encoding.GetEncoding("GB2312"));

                //do
                //{
                //    Console.WriteLine(reader.ReadLine());

                //} while (reader.Read()>0);

                //StreamWriter writer = new StreamWriter("aboutMe.txt", false, Encoding.UTF8);
                //writer.Write("hello,word");
              
                //reader.Dispose();
                //writer.Dispose();

                //Console.ReadKey();


            #endregion

            #region BinaryReader/BinaryWriter的使用

                //Product product = new Product("Product.txt") { 
            
                //        id=110,
                //        price=123.3,
                //        Name="lhc"
            
                //};
                //product.Save();
                //Product newItem =new  Product("Product.txt");
                //newItem.Load();
                //Console.WriteLine(newItem);
                //Console.ReadKey();
                


            #endregion



public class Product {

        public int id { get; set; }
        public string Name { get; set; }
        public double price { get; set; }

        private string filePath;
        public Product(string filePath) { this.filePath = filePath; }

        public void Save() {

            FileStream fs = new FileStream(this.filePath, FileMode.Create, FileAccess.Write);
            BinaryWriter writer = new BinaryWriter(fs);
            writer.Write(this.id);
            writer.Write(this.Name);
            writer.Write(this.price);
            writer.Dispose();
        }

        public void Load() {

            FileStream fs = new FileStream(this.filePath, FileMode.Open, FileAccess.Read);
            BinaryReader reader = new BinaryReader(fs);
            this.id = reader.ReadInt32();
            this.Name = reader.ReadString();
            this.price = reader.ReadDouble();
            reader.Dispose();
        
        }

        public override string ToString()
        {
            return string.Format("ID:{0},Name:{1},Price:{2}", this.id, this.Name, this.price);

        }
    }


  

帮助类

 

命名空间:system.io

File

FileInfo

Path

Directory/DirecoryInfo

Create;

Open;

openRead;

openWrite;

Copy;

 

处理路径

 

 


  #region 工具类示例
               // File.WriteAllText("FileTest.txt", "hello,i'm using file ", Encoding.UTF8);
  #endregion


      在使用的时候,还是应该先考虑已有的高级类是否封装了可用的方法,没有的话,再考虑使用基本类进行封装。













相关文章:

  • 把Javascript放置到何处
  • live555学习笔记6-建立RTP会话
  • 谈谈Ext JS的组件——组件基类:Ext.Component
  • 玩转VIM编辑器-导航移动
  • [翻译]利用C#获取终端服务(Terminal Services)会话的闲置时间
  • 让Windwos Server 2008 R2 SP1的FTP真正能访问
  • 20天android学习
  • 库函数实现之字符串拷贝
  • Xqk.Data数据框架使用说明之:如何自定义数据表名
  • 优化SqlServer--数据压缩
  • devexpress chart 柱形图
  • 我的电脑搜索这个功能不能打开
  • VS2010性能监视工具
  • Silverlight和WPF开发人员必须具备以下十大开发技能
  • 满足需求为第一位
  • 【刷算法】求1+2+3+...+n
  • 2017年终总结、随想
  • 30秒的PHP代码片段(1)数组 - Array
  • angular组件开发
  • CSS相对定位
  • django开发-定时任务的使用
  • gcc介绍及安装
  • JavaScript设计模式与开发实践系列之策略模式
  • Laravel 实践之路: 数据库迁移与数据填充
  • MySQL-事务管理(基础)
  • Solarized Scheme
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Xmanager 远程桌面 CentOS 7
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 分类模型——Logistics Regression
  • 京东美团研发面经
  • 免费小说阅读小程序
  • 为视图添加丝滑的水波纹
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 正则学习笔记
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • Java总结 - String - 这篇请使劲喷我
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​卜东波研究员:高观点下的少儿计算思维
  • #1014 : Trie树
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • $.each()与$(selector).each()
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (转)创业家杂志:UCWEB天使第一步
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .net连接oracle数据库
  • .Net中ListT 泛型转成DataTable、DataSet
  • @requestBody写与不写的情况
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解