文件流是否包含所有文件的数据?

时间:2017-02-19 19:03:03

标签: c# stream

FileStream myFileStream = File.Open("C:\\file.txt", FileMode.Open);

这一行声明并初始化一个变量myFileStream,但是这个变量到底是什么?它是否包含“file.txt”中的所有字节?或者它是否包含与文件建立连接的信息?

4 个答案:

答案 0 :(得分:1)

它包含有关与文件建立的连接的信息。现在,当建立连接并打开文件时,您可以操作文件中的文本。

答案 1 :(得分:1)

变量myFileStream只是HANDLE。没什么。

您可以使用此 HANDLE 访问文件的内容,或使用其他方法/功能修改文件的权限。

在二进制级别上,它只不过是操作系统用来引用该文件以供其他方法/功能使用的32位/ 64位数字。

这是对你问题的简单回答

  

FileStream是否包含所有文件的数据?

它包含无数据,但代表 HANDLE 以访问所有文件的数据

答案 2 :(得分:1)

来自维基百科的定义 In computer science, a stream is a sequence of data elements made available over time

所以你的变量myFileStream只是一个允许你操作大量数据的指针

可能你需要寻找Stream和Buffer之间的区别

缓冲区通常只是一块内存块,可以将内容存储在RAM中。

流可以让您将内容存储在磁盘上,发送到其他计算机,如互联网,串行端口,UCB等。流通常使用缓冲区来优化传输速度。

答案 3 :(得分:0)

FileStream对象表示文件表示的句柄。它充当对操作系统处理的某些底层结构的引用,允许您的代码向操作系统询问文件系统中驻留文件的操作,例如ReadWriteSeek

重要的是要记住,Stream一般是抽象结构(来自MSDN page on Streams),旨在为类似概念的常见操作提供干净的界面,例如FileSocket