当前位置:  编程技术>.net/c#/asp.net

c#读取文件详谈

    来源: 互联网  发布时间:2014-10-23

    本文导语:  c#里面封装了几乎所有我们可以想到的和我们没有想到的类,流是读取文件的一般手段,那么你真的会用它读取文件中的数据了么?真的能读完全么? 通常我们读取一个文件使用如下的步骤: 1、声明并使用File的OpenRead实例化...

c#里面封装了几乎所有我们可以想到的和我们没有想到的类,流是读取文件的一般手段,那么你真的会用它读取文件中的数据了么?真的能读完全么?

通常我们读取一个文件使用如下的步骤:

1、声明并使用File的OpenRead实例化一个文件流对象,就像下面这样

代码如下:

FileStream fs = File.OpenRead(filename);

或者
代码如下:

FileStream fs = FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);

2、准备一个存放文件内容的字节数组,fs.Length将得到文件的实际大小,就像下面这样 byte[] data = new byte[fs.Length];

3、哇!开始读了,调用一个文件流的一个方法读取数据到data数组中 fs.Read (data, 0, data.Length);

呵呵!我们只写了3句就可以把文件里面的内容原封不动的读出来,真是太简洁了!可以这段代码真的能像你预期的那样工作么?

答案是:几乎可以!在大部分情况下上面的代码工作的很好,但是我们应该注意Read方法是有返回值的,既然有返回值那么一定有其道理,如果按照上面的写法完全可以是一个没有返回值的函数。我想返回值的目的是,为了给我们一个机会判断实际读取文件的大小,从而来判断文件是否已经完全读完。所以上面的代码不能保证我们一定读完了文件里面的所有字节(虽然在很多情况下是读完了)。下面的方法提供了一个比上面方法更安全的方法,来保证文件被完全读出

代码如下:

public static void SafeRead (Stream stream, byte[] data)

{

int offset=0; int remaining = data.Length; // 只要有剩余的字节就不停的读

while (remaining > 0)

{

int read = stream.Read(data, offset, remaining);

if (read


    
 
 

您可能感兴趣的文章:

  • C#逐行读取txt文件的方法
  • C# 读取配置文件(指定路径)的方法
  • C# 正则表达式读取Discuz帖子中附件的代码举例
  • c#读取文本的简单例子
  • C# 读取指定路径配置文件的方法
  • c#简单读取文本的实例方法
  • C# 创建文本文件写入读取实现代码
  • C#读取RSS的小例子
  • c#读取图像保存到数据库(数据库保存图片)实例
  • 解决C# X64应用程序中读取WParam溢出的问题
  • c#多线程读取注册表 c#多线程的小例子
  • c#读取图像保存到数据库中(数据库保存图片)
  • c# 二进制方式读取文本文件的实现代码
  • C#读取EXCEL文件内容写入数据库的代码
  • C#操作图片读取和存储SQLserver实现代码
  • C#读取文件MD5值的实现代码
  • c#读取excel内容内容示例分享
  • C#反射技术(读取和设置类的属性)的例子
  • c# 以二进制读取文本文件
  • C#利用Openxml读取Excel数据实例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • 上传文件时,如何在读取文件内容之前中断读取,并返回客户端错误信息?
  • read函数读取文件时如何一行一行的读取,请指教!
  • java中读取.txt和读取.ini文件的方式和命令是否一样
  • 读取spring配置文件的方法(spring读取资源文件)
  • 请问在Java程序中能否直接读取ini文件,如何读取?
  • php读取文件内容并清空文件
  • python读取浮点数和读取文本文件示例
  • 高手帮忙:如何用java读取数据(从ftp服务器上一个文本文件)但不采用get的方式直接读取,打印数据内容(web方式)
  • c语言读取csv文件和c++读取csv文件示例分享
  • 能否读取一个二进制文件的大小
  • 一个读取文件内容时遇到的问题,就是只读取了文件第一行的内容。。
  • map读取文件
  • applet中读取服务器的资源文件如图片、音乐文件等。怎么弄?请大家帮忙!
  • shell读取文件的简单问题
  • PHP读取文件内容后清空文件示例代码
  • ext3/ext4文件系统读取软件 ExtExplorer
  • 文件读取的问题!(急需您的帮助)
  • 我想用APPLET实现读取客户端的图片文件,该如何实现?
  • 求助:关于读取移动存储卡中文文件名
  • 关于从浏览器中读取文件的问题
  • C++ I/O 成员 getline():读取一行字符
  • linux 下使用 FREETDS 访问数据库 image 字段的问题, 仅能读取 64K ,超出部分读取不到?
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 光驱中有一张光盘,成功读取,现在想换另一张光盘并读取,该如何做
  • C++ I/O 成员 ignore():读取字符并忽略指定字符
  • 串口读取数据的问题
  • C++ I/O 成员 read():读取字条符
  • linux下的mib读取问题?大虾帮解答下
  • C++ I/O 成员 gcount():返回读取的最后一次输入的字符数
  • 请问readdir读取顺序是什么




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3