Heim  >  Artikel  >  Backend-Entwicklung  >  .net Stream – eine kurze Einführung in das Stream-Typ-System

.net Stream – eine kurze Einführung in das Stream-Typ-System

黄舟
黄舟Original
2017-02-24 10:42:381557Durchsuche


流的类型体系

 

基础流

基础流

装饰器流

包装器类

帮助类

继承自基本的stream

在基础Stream上添加的功能

数据传输

对文件流的操作变简单

装饰器流

包装器类

帮助类 td>

继承自基本的stream

在基础Stream上添加的功能

数据传输

对文件流的操作变简单


基础流

 

Stream

对应的后备存储是文件

内存

网络资源

 

 

FileStream

MemoryStream

NetWorkStream

 

 

IsolatedStorgaeFileStream:

继承自FileStream

 

 

 

Stream td>

对应的后备存储是文件

内存

网络资源

 
  FileStream MemoryStream NetWorkStream  
  IsolatedStorgaeFileStream:

继承自FileStream

     

 

    感觉还是挺类Java的.


装饰器流

 

Puffer

BufferdStream

DeflateStream

GZipStream

CryptoStream

AuthenticatedStream

System.io

System.IO.Compression

System.IO.Compression

System.Security.Cryptography

System.net.security

增强缓存

压缩

解压缩

加密解密

安全性

dStream

DeflateStream GZipStream CryptoStream AuthenticatedStream
System.io System.IO.Compression System.IO.Compression

System .Security.Cryptography

System.net.security
增强缓存 压缩 解压缩 加密解密 安全性

Das Lenovo Decorator-Muster fügt wahrscheinlich einige andere Funktionen zum Grundfluss hinzu, was ein bisschen wie eine Erweiterung der Funktionalität des Grundtyps ist.

Wrapper-Klasse

Führt Streams für die Datenübertragung ein;

TextWriter

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

 

StreamReader

StreamWriter

1,继承自

TextWriter

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

 

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

 

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

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

StringReader

StringWriter:

1,也继承自

TextWriter

TextReader,用于处理字符串

 

 

 

TextWriter

Text Reader (definiert als eine Reihe gängiger Methoden zum Lesen und Schreiben von Zeichendaten)

StreamReader

StreamWriter:

1, geerbt von TextWriter

TextReader , definiert eine Reihe gängiger Methoden zum Lesen und Schreiben von Zeichendaten 2, Geeignet zum Lesen und Schreiben von Textzeichen

BinaryReader : Wird verwendet, um primitive Typen in binärer Form in den Stream zu schreiben

BinaryWriter: wird zum Lesen primitiver Typen aus Streams verwendet

St ringReaderStringWriter:1, auch geerbt von TextWriter

TextReader, wird zum Verarbeiten von Zeichenfolgen

 

 #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

Directory/DirecoryInfo

File

FileInfo

Path

Directory/DirecoryInfo

Create;

Open;

openRead;

openWrite;

Copy;

 

处理路径


Datei


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

Erstellen;

Öffnen;


openRead;

openWrite;

Copy;


 

处理路径




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



 以上就是.net 流——流的类型体系简单介绍的内容,更多相关内容请关注PHP中文网(www.php. cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn