您的当前位置:首页.NET中的IO操作之文件流用法分析

.NET中的IO操作之文件流用法分析

2022-06-15 来源:比拉宠物

本文实例讲述了.NET中的IO操作之文件流用法。分享给大家供大家参考。具体分析如下:

读操作 代码如下://1.创建文件流FileStream fsRead =new FileStream("1.txt",FileMode.Open);//2.创建缓冲区,正常情况下,是不会直接等于文件大小的。这里只有读,所以就这么干了。byte[] bytes =new byte[fsRead.Length];//3.开始读取, 返回值是读取到的长度。int r =fsRead.Read(bytes,0,bytes.Lenght);//4.关闭释放流fsRead.Close();fsRead.Dispose();

写操作 代码如下://1.创建写入的文件流FileStream fsWrite fsWrite =new FileStream(@"xxx",FileMode.OpenOrCreate);//2.创建缓冲区String msg ="HelloWorld";byte[] bytes =Enconding.UTF8.GetBytes(msg);//3.开始写入fsWrite.Write(bytes,0,bytes.Length);//4.关闭fsWrite.Close();fsWrite.Dispose();

byte数组与string之间的转换

在文件流写入的时候,经常需要string 和 byte数组之间的转换。这里简单的描述一下,这方面的做法。

1.string 到 byte[]数组。 代码如下:string msg ="HelloWorld";//使用UTF8编码byte[] bytes =System.Text.Encoding.UTF8.GetByte(msg);//使用系统默认编码byte[] bytes =System.Text.Encoding.Default.GetByte(msg); 2.byte[]到string 代码如下:string newMsg =System.Text.Encoding.UTF8.GetString(bytes);

编码问题

为什么中文会乱码?UTF8 编码中,一个中文字符占用两个字节。GBK  编码中,一个中文字符占用三个字节。UTF8 编码中,用两个字节保存一个汉字,如果你用GBK读取,按照三个字节一个字的格式去读。当然乱码了。反之也是一样的。

总结起来,无论是36码的鞋子,穿在50码的脚丫子上。还是36码的脚丫子,穿50码的鞋。看起来都不会很舒服。

所以,按照什么格式写入,就按照什么格式读取。才是正解。

PS:1.Utf8是国际标准。2.GB2312  是国标编码,支持中文的。3.GBK是对GB2312的扩展,支持繁体中文。

什么类可以Dispose( )?

1.Dispose()表示释放资源,.NET中对Dispose()有一个统一的约定或者叫描述。这个约定表现为一个接口。

或者说这个接口,是一个红头文件,红头文件中约定了如何释放资源。所有实现了IDisposable接口的类都可以释放,可以Dispose();

那么类库中什么样的类会实现IDisposable接口呢?我的理解是这样的,一般仅占用托管堆中内存资源的类或对象。一般不需要Dispose()。垃圾回收就搞定了。但是对于文件句柄,网络端口号,数据库连接等,CLR的垃圾回收机制是不管的。所以一般这部分内容需要实现IDisposable接口。文件流操作的异常处理 代码如下://只有把fs定义在这里,finally中才能引用得到。FileStream fs =null;try{     fs =new FileStream(@"文件路径",FileMode.Create);     byte[] bytes = Encoding.Default.GetBytes("HelloWorld");     fs.Write(bytes,0,byte.Length);}finally{     if(fs != null)  //如果fs未赋值,那么直接Dispose就会引发空指针异常。     {         fs.Dispose();     }}简化上述的写法,虽然严谨但是稍微有点麻烦。Microsoft提供了语法糖。就是using的语法 代码如下:using(某个可以释放资源的类){      操作}//1.操作执行完,会自动释放。//2.using语句编译完成以后,会形成跟上面类似的代码。就是使用try  finally。StreamWriter和StreamReader 代码如下://按行写入StreamWriter sw =new StreamWriter(@"target",true,Encoding.GetEnconding("GB2312"));sw.WriteLine("HelloWorld"); //按行读取StreamReader sr =new StreamReader(@"Source");sr.ReaderLine();  //每次返回一个字符串

希望本文所述对大家的.net程序设计有所帮助。

小编还为您整理了以下内容,可能对您也有帮助:

C#.NET里怎么读写流文件?

FileStream常用的属性和方法:
  属性:
  CanRead
判断当前流是否支持读取,返回bool值,True表示可以读取
  CanWrite
判断当前流是否支持写入,返回bool值,True表示可以写入
  方法:
  Read()
从流中读取数据,返回字节数组
  Write()
将字节块(字节数组)写入该流
  Seek()
设置文件读取或写入的起始位置
  Flush()
清除该流缓冲区,使得所有缓冲的数据都被写入到文件中
  Close()
关闭当前流并释放与之相关联的所有系统资源
  文件的访问方式:(FileAccess)
  包括三个枚举:
  FileAccess.Read(对文件读访问)
  FileAccess.Write(对文件进行写操作)
  FileAccess.ReadWrite(对文件读或写操作)
  文件打开模式:(FileMode)包括6个枚举
  FileMode.Append
打开现有文件准备向文件追加数据,只能同FileAccess.Write一起使用
  FileMode.Create
指示操作系统应创建新文件,如果文件已经存在,它将被覆盖
  FileMode.CreateNew
指示操作系统应创建新文件,如果文件已经存在,将引发异常
  FileMode.Open
指示操作系统应打开现有文件,打开的能力取决于FileAccess所指定的值
  FileMode.OpenOrCreate
指示操作系统应打开文件,如果文件不存在则创建新文件
  FileMode.Truncate
指示操作系统应打开现有文件,并且清空文件内容
  文件共享方式:(FileShare)
  FileShare方式是为了避免几个程序同时访问同一个文件会造成异常的情况。
  文件共享方式包括四个:
  FileShare.None
谢绝共享当前文件
  FileShare.Read
充许别的程序读取当前文件
  FileShare.Write
充许别的程序写当前文件
  FileShare.ReadWrite
充许别的程序读写当前文件
  使用FileStream类创建文件流对象:
  FileStream(String
文件路径,FileMode
文件打开模式)
  FileStream(String
文件路径,FileMode
文件打开模式,FileAccess
文件访问方式)
  FileStream(String
文件路径,FileMode
文件打开模式,FileAccess
文件访问方式,FileShare
文件共享方式)
  例:
  //在C盘创建a.txt文件,使用fs流对象对文件进行操作,fs的工作模式是新建(FileMode.Create)
  FileStream
fs=new
FileStream(@"c:a.txt",FileMode.Create);
  //在C盘创建a.txt文件,使用fs流对象对文件进行操作,fs工作模式是新建(FileMode.Create)文件的访问模式是写入(Fileaccess.Write)
  FileStream
fs=new
FileStream(@"c:a.txt",FileMode.Create,FileAccess.Write);
  //在C盘创建a.txt文件,使用fs流对象对文件进行操作,fs工作模式是新建(FileMode.Create)文件的访问模式是写入(FileAccess.Write)文件的共享模式是谢绝共享(FileShare.None)
  FileStream
fs=new
FileStream(@"c:a.txt",FileMode.Create,FileAccess.Write,FileShare.None);
  使用File类来创建对象:(常用)
  自定义打开文件的方式:File.Open(String,FileMode);
  打开文件进行读取:
File.OpenRead(String);
  打开文件进行写入:
File.OpenWrite(String);
  示例如下:
  //在C盘新建123.txt文件,使用流对象fs对文件进行操作,fs可以行文件内容追加操作FileMode.Append
  FileStream
fs=File.Open(@"c:123.txt",FileMode.Append);
  //在C盘新建123.txt文件,使用流对象fs对文件进行操作,fs可以进行读文件File.OpenRead()
  FileStream
fs=File.OpenRead(@"c:123.txt");
  //在C盘新建123.txt文件,使用流对象fs对文件进行操作,fs可以进行写操作File.OpenWrite()
  FileStream
fs=File.OpenWrite(@"c:123.txt");
  使用File例:
  对文件进行读操作:
  //新建fs流对象对象产生的路径是textbox1.text的值,文件的模式是FileMode.OpenOrCreate(可读可写)
  using
(FileStream
fs
=
File.Open(textBox1.Text,
FileMode.OpenOrCreate))
  {
  //新建字节型数组,数组的长度是fs文件对象的长度(后面用于存放文件)
  byte[]
bt=new
byte[fs.Length];
  //通过fs对象的Read方法bt得到了fs对象流中的内容
  fs.Read(bt,0,bt.Length);
  //关闭fs流对象
  fs.Close();
  //将bt字节型数组中的数据由Encoding.Default.GetString(bt)方法取出,交给textbox2.text
  textBox2.Text
=
System.Text.Encoding.Default.GetString(bt);
  }
  对文件进行写入操作:
  //新建fs流对象,对象操作的文件路径在textbox1.text中,fs的操作模式是FileMode.Create
  using
(FileStream
fs
=
File.Open(textBox1.Text,
FileMode.Create))
  {
  //新建字节型数组bt对象,bt对象得到了textbox2.text的Encoding的值
  byte[]
bt
=
System.Text.Encoding.Default.GetBytes(textBox2.Text);
  //将bt字节型数组对象的值写入到fs流对象中(文件)
  fs.Write(bt,0,bt.Length);
  //关闭流对象
  fs.Close();
  }
  注:
  对文件的读写操多不管代码有多少,无非就是下面的三步:
  1.创建文件读写流对象
  2.对文件进行读写
  3.关闭文件流

C#.NET里怎么读写流文件?

FileStream常用的属性和方法:
  属性:
  CanRead
判断当前流是否支持读取,返回bool值,True表示可以读取
  CanWrite
判断当前流是否支持写入,返回bool值,True表示可以写入
  方法:
  Read()
从流中读取数据,返回字节数组
  Write()
将字节块(字节数组)写入该流
  Seek()
设置文件读取或写入的起始位置
  Flush()
清除该流缓冲区,使得所有缓冲的数据都被写入到文件中
  Close()
关闭当前流并释放与之相关联的所有系统资源
  文件的访问方式:(FileAccess)
  包括三个枚举:
  FileAccess.Read(对文件读访问)
  FileAccess.Write(对文件进行写操作)
  FileAccess.ReadWrite(对文件读或写操作)
  文件打开模式:(FileMode)包括6个枚举
  FileMode.Append
打开现有文件准备向文件追加数据,只能同FileAccess.Write一起使用
  FileMode.Create
指示操作系统应创建新文件,如果文件已经存在,它将被覆盖
  FileMode.CreateNew
指示操作系统应创建新文件,如果文件已经存在,将引发异常
  FileMode.Open
指示操作系统应打开现有文件,打开的能力取决于FileAccess所指定的值
  FileMode.OpenOrCreate
指示操作系统应打开文件,如果文件不存在则创建新文件
  FileMode.Truncate
指示操作系统应打开现有文件,并且清空文件内容
  文件共享方式:(FileShare)
  FileShare方式是为了避免几个程序同时访问同一个文件会造成异常的情况。
  文件共享方式包括四个:
  FileShare.None
谢绝共享当前文件
  FileShare.Read
充许别的程序读取当前文件
  FileShare.Write
充许别的程序写当前文件
  FileShare.ReadWrite
充许别的程序读写当前文件
  使用FileStream类创建文件流对象:
  FileStream(String
文件路径,FileMode
文件打开模式)
  FileStream(String
文件路径,FileMode
文件打开模式,FileAccess
文件访问方式)
  FileStream(String
文件路径,FileMode
文件打开模式,FileAccess
文件访问方式,FileShare
文件共享方式)
  例:
  //在C盘创建a.txt文件,使用fs流对象对文件进行操作,fs的工作模式是新建(FileMode.Create)
  FileStream
fs=new
FileStream(@"c:a.txt",FileMode.Create);
  //在C盘创建a.txt文件,使用fs流对象对文件进行操作,fs工作模式是新建(FileMode.Create)文件的访问模式是写入(Fileaccess.Write)
  FileStream
fs=new
FileStream(@"c:a.txt",FileMode.Create,FileAccess.Write);
  //在C盘创建a.txt文件,使用fs流对象对文件进行操作,fs工作模式是新建(FileMode.Create)文件的访问模式是写入(FileAccess.Write)文件的共享模式是谢绝共享(FileShare.None)
  FileStream
fs=new
FileStream(@"c:a.txt",FileMode.Create,FileAccess.Write,FileShare.None);
  使用File类来创建对象:(常用)
  自定义打开文件的方式:File.Open(String,FileMode);
  打开文件进行读取:
File.OpenRead(String);
  打开文件进行写入:
File.OpenWrite(String);
  示例如下:
  //在C盘新建123.txt文件,使用流对象fs对文件进行操作,fs可以行文件内容追加操作FileMode.Append
  FileStream
fs=File.Open(@"c:123.txt",FileMode.Append);
  //在C盘新建123.txt文件,使用流对象fs对文件进行操作,fs可以进行读文件File.OpenRead()
  FileStream
fs=File.OpenRead(@"c:123.txt");
  //在C盘新建123.txt文件,使用流对象fs对文件进行操作,fs可以进行写操作File.OpenWrite()
  FileStream
fs=File.OpenWrite(@"c:123.txt");
  使用File例:
  对文件进行读操作:
  //新建fs流对象对象产生的路径是textbox1.text的值,文件的模式是FileMode.OpenOrCreate(可读可写)
  using
(FileStream
fs
=
File.Open(textBox1.Text,
FileMode.OpenOrCreate))
  {
  //新建字节型数组,数组的长度是fs文件对象的长度(后面用于存放文件)
  byte[]
bt=new
byte[fs.Length];
  //通过fs对象的Read方法bt得到了fs对象流中的内容
  fs.Read(bt,0,bt.Length);
  //关闭fs流对象
  fs.Close();
  //将bt字节型数组中的数据由Encoding.Default.GetString(bt)方法取出,交给textbox2.text
  textBox2.Text
=
System.Text.Encoding.Default.GetString(bt);
  }
  对文件进行写入操作:
  //新建fs流对象,对象操作的文件路径在textbox1.text中,fs的操作模式是FileMode.Create
  using
(FileStream
fs
=
File.Open(textBox1.Text,
FileMode.Create))
  {
  //新建字节型数组bt对象,bt对象得到了textbox2.text的Encoding的值
  byte[]
bt
=
System.Text.Encoding.Default.GetBytes(textBox2.Text);
  //将bt字节型数组对象的值写入到fs流对象中(文件)
  fs.Write(bt,0,bt.Length);
  //关闭流对象
  fs.Close();
  }
  注:
  对文件的读写操多不管代码有多少,无非就是下面的三步:
  1.创建文件读写流对象
  2.对文件进行读写
  3.关闭文件流

IO流中的设计模式

1.IO中用到的适配器模式
在IO中,如将字符串数据转变成字节数据保存到文件中,将字节数据转变成流数据等都用到了适配器模式,下面以InputStreamReader和OutputStreamWriter类为例介绍适配器模式。
InputStreamReader和OutputStreamWriter类分别继承了Reader和Writer接口,但要创建它们必须在构造函数中传入一个InputStream和OutputStream的实例,InputStreamReader和OutputStreamWriter的作用也就是将InputStream和OutputStream适配到Reader和Writer。
InputStreamReader实现了Reader接口,并且持有了InputStream的引用,这是通过StreamDecoder类间接持有的,因为byte到char要经过编码。
这里,适配器就是InputStreamReader类,而源角色就是InputStream代表的实例对象,目标接口就是Reader类,OutputStreamWriter类也是类似的方式。
在IO中类似的还有,如StringReader将一个String类适配到Reader接口,ByteArrayInputStream适配器将byte数组适配到InputStream流处理接口。

2.IO中用到的装饰模式
装饰模式就是对一个类进行装饰,增强其方法行为,在装饰模式中,作为原来的这个类使用者还不应该感受到装饰前与装饰后有什么不同,否则就破坏了原有类的结构了,所以装饰器模式要做到对被装饰类的使用者透明,这是对装饰器模式的一个要求。总之装饰器设计模式就是对于原有功能的扩展
在IO中有许多不同的功能组合情况,这些不同的功能组合都是使用装饰器模式实现的,下面以FilterInputStream为例介绍装饰器模式的使用。
InputStream类就是以抽象组件存在的,而FileInputStream就是具体组件,它实现了抽象组件的所有接口,FilterInputStream类就是装饰角色,它实现了InputStream类的所有接口,并持有InputStream的对象实例的引用,BufferedInputStream是具体的装饰器实现者,这个装饰器类的作用就是使得InputStream读取的数据保存在内存中,而提高读取的性能。类似的还有LineNumberInputStream类,它的作用是提高按行读取数据的功能。

总结
这两种设计模式看起来都是起到包装一个类或对象的作用,但是使用它 们的目的却不尽相同。适配器模式主要在于将一个接口转变成另一个接口,它的目的是通过改变接口来达到重复使用的目的;而装饰器模式不是要改变被装饰对象的接口,而是保持原有的接口,但是增强原有对象的功能,或改变原有对象的方法而提高性能。

补充:高性能的IO体系。
首先得明白什么是同步,异步,阻塞,非阻塞.
1,同步和异步是针对应用程序和内核的交互而言的
2,阻塞和非阻塞是针对于进程在访问数据的时候,根据IO操作的就绪状态来采取的不同方式
总结一句简短的话,同步和异步是目的,阻塞和非阻塞是实现方式。
名词解释
同步 指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪 自己上街买衣服,自己亲自干这件事,别的事干不了。

IO流中的设计模式

1.IO中用到的适配器模式
在IO中,如将字符串数据转变成字节数据保存到文件中,将字节数据转变成流数据等都用到了适配器模式,下面以InputStreamReader和OutputStreamWriter类为例介绍适配器模式。
InputStreamReader和OutputStreamWriter类分别继承了Reader和Writer接口,但要创建它们必须在构造函数中传入一个InputStream和OutputStream的实例,InputStreamReader和OutputStreamWriter的作用也就是将InputStream和OutputStream适配到Reader和Writer。
InputStreamReader实现了Reader接口,并且持有了InputStream的引用,这是通过StreamDecoder类间接持有的,因为byte到char要经过编码。
这里,适配器就是InputStreamReader类,而源角色就是InputStream代表的实例对象,目标接口就是Reader类,OutputStreamWriter类也是类似的方式。
在IO中类似的还有,如StringReader将一个String类适配到Reader接口,ByteArrayInputStream适配器将byte数组适配到InputStream流处理接口。

2.IO中用到的装饰模式
装饰模式就是对一个类进行装饰,增强其方法行为,在装饰模式中,作为原来的这个类使用者还不应该感受到装饰前与装饰后有什么不同,否则就破坏了原有类的结构了,所以装饰器模式要做到对被装饰类的使用者透明,这是对装饰器模式的一个要求。总之装饰器设计模式就是对于原有功能的扩展
在IO中有许多不同的功能组合情况,这些不同的功能组合都是使用装饰器模式实现的,下面以FilterInputStream为例介绍装饰器模式的使用。
InputStream类就是以抽象组件存在的,而FileInputStream就是具体组件,它实现了抽象组件的所有接口,FilterInputStream类就是装饰角色,它实现了InputStream类的所有接口,并持有InputStream的对象实例的引用,BufferedInputStream是具体的装饰器实现者,这个装饰器类的作用就是使得InputStream读取的数据保存在内存中,而提高读取的性能。类似的还有LineNumberInputStream类,它的作用是提高按行读取数据的功能。

总结
这两种设计模式看起来都是起到包装一个类或对象的作用,但是使用它 们的目的却不尽相同。适配器模式主要在于将一个接口转变成另一个接口,它的目的是通过改变接口来达到重复使用的目的;而装饰器模式不是要改变被装饰对象的接口,而是保持原有的接口,但是增强原有对象的功能,或改变原有对象的方法而提高性能。

补充:高性能的IO体系。
首先得明白什么是同步,异步,阻塞,非阻塞.
1,同步和异步是针对应用程序和内核的交互而言的
2,阻塞和非阻塞是针对于进程在访问数据的时候,根据IO操作的就绪状态来采取的不同方式
总结一句简短的话,同步和异步是目的,阻塞和非阻塞是实现方式。
名词解释
同步 指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪 自己上街买衣服,自己亲自干这件事,别的事干不了。

【总】Android之IO流/文件导航

本篇文章内容来自于

1. Android基础之IO流

一、File类

--1.1 File类的构造方法

--1.2 File类的创建方法

--1.3 File类的常用方法

二、IO流

1.IO流分类

2.InputStream/OutputStream(字节流基类 拷贝用这个)

3.Reader/Writer(字符流基类 只读或者只写用这个)

4. FileInputStream/FileOutputStream (文件输入输出流,一般都用这个)

5. BufferedInputStream/BufferedOutputStream (字节缓冲流,减少与硬盘的交流次数,加快速度,需要flush()才可写入)

6.IO流如何处理异常

7. FileReader/FileWriter (文件字符流)

8. BufferedReader/BufferedWriter (缓冲字符流,需要flush()才可写入)

9. InputStreamReader/OutputStreamWriter转换流 (将字节流转换成字符流)

10. ByteArrayInputStream/ByteArrayOutputStream (数组字符流,可以将流写入到内存中,然后获取所有结果)

11. DataInputStream/DataOutputStream (基本数据流,可以以基本数据的形式写入和读取)

12. ObjectInputStream/ObjectOutputStream (对象操作流,可以序列化或者反序列化)

三、IO流应用

1.处理流(BufferedXXX)配合节点流(XXXInputStream和XXXWriter/Reader)

2.输入流(FileInputStream等)配合使用ByteArrayOutputStream(内存数组流),将输入流内容一次性输出

3.使用ObjectOutputStream将得到的密钥Key对象存储

文件有无后缀都会创建

输入流/输出流 (按流向分)

输入流是写入到内存 InputStream、Reader

输出流是写出到存储设备 OutputStream、Writer

字节流/字符流 (按操作类型分)

字节流可操作任何数据 InputStream、OutputStream

字符流只能操作纯字符数据 Reader、Writer

节点流/处理流

节点流的的构造参数是物理IO节点,比如public FileInputStream(File file)

处理流的构造参数是已经存在的流(装饰设计模式),比如public BufferedOutputStream(OutputStream out)

常用节点流

InputStream是字节输入流的抽象基类

OutputStream是字节输入流的抽象基类

Reader是字符输入流的抽象基类

Writer是字符输出流的抽象基类

Android-IO流之文件输入输出字节流FileInputStream/FileOutputStream

Android-IO流之缓冲字节流BufferedInputStream/BufferedOutputStream

处理方式一:

处理方式二:

Android-IO流之文件字符流FileReader/FileWriter

Android-IO流之缓冲字符流BufferedReader/BufferedWriter

Android-IO流之转换流InputStreamReader/OutputStreamWriter

Android-IO流之数组内存字节流ByteArrayInputStream/ByteArrayOutputStream

Android-IO流之数据流DataInputStream/DataOutputStream

Android-IO流之对象操作流ObjectInputStream/ObjectOutputStream

实例:当系统提供的方法返回的是FileOutputStream时,想写入字符串,则配合使用缓存流BufferedWriter和转换流OutputStreamWriter

实例:当系统提供的方法返回是FileInputStream时,想读出字符串信息。则配合使用BufferedReader和InputStreamReader

实例:将文件中的内容读出显示

C#中简述文件和流的概念

文件是计算机管理数据的基本单位,同时也是应

用程序保存和读取数据的一个重要场所。文件是指在

各种存储介质上(如硬盘、可移动磁盘、CD等)永

久存储的数据的有序集合,它是进行数据读写操作的

基本对象。

每个文件都有文件名、文件所在路径、创建

时间及访问仅限等属性。然而,文件(File)和

流(Stream)是既有区别又有联系的两个概念。流

是字节序列的抽象概念,例如文件、输入/输出设

备、内部进程通信管道等。流提供一种向后备存

储器写入字节和从后备存储器读取字节的方式。

除了和磁盘文件直接相关的文件流以外,流还有

多种类型。

在System.IO命名空间中提供了多种类,用

于进行文件和数据流的读写操作。要使用这些类,

需要在程序的开头包含语句:

using System.IO;

比拉宠物还为您提供以下相关内容希望对您有帮助:

在asp.net中如何用文件流生成一个.txt文件,并保存在服务器端

string path = Server.MapPath("Files") + "\\" + TextBox1.Text.Trim();//TextBox1.Text.Trim()这个控件用来获取文件名字和类型,比如1.text;Files文件是项目里面的一个文件,新建的text文件放在此目录下,可以自己根据自己的写 FileInfo fi=new FileInfo(path);if(!fi.Exists){ StreamWrite...

vb.net读取文件流

dim filename as string = "文件名" Using myfilestream As New FileStream(FileName, FileMode.Open, FileAccess.Read)Dim data() As Byte ReDim data(myfilestream.Length - 1)myfilestream.Read(data, 0, myfilestream.Length)myfilestream.Close()' data是你要的结果,为byte(), End Usin...

io和nio的文件读取方式的不同

可见对大文件块读取是最好的;如果要直接操作文件的很大的一部分的内容,则比较适合MappedByteBuffer ;如读取很小的内容,比如8B的内容,inputStream可能是最好的。代码如下,选几个文件自已试下。使用jdk自带JConsole进行观察。public class Test { public static void main(String[] args)throws Exception{...

asp.net实现文件上传,FileUpdate.aspx.cs和FileHandler.ashx代码的...

///输入参数:文件名fileName,文件流upload ///输出参数:无 private void AddFile(string fileName, System.IO.Stream upload){ SqlConnection con = new SqlConnection(...)//新建数据库连接 SqlCommand cmd = new SqlCommand("INSERT File (FileName) Values (@FileName;"+"SELECT @Identity=...

标准IO和文件IO的区别

(1)全缓存:当填满标准IO缓存后才进行实际的IO操作。 (2)行缓存:当输入或输出中遇到新行符时,标准IO库执行IO操作。 (3)不带缓存:stderr就是了。文件IO:文件IO称之为不带缓存的IO(unbuffered I/O)。不带缓存指的是每个read,write都调用内核中的一个系统调用。也就是一般所说的低级I...

c# 文件流 filestream 参数?

文件的打开模式,这里FileMode是个枚举,包括:CreateNew 指定操作系统应创建新文件。此操作需要 FileIOPermissionAccess..::.Write。如果文件已存在,则将引发 IOException。Create 指定操作系统应创建新文件。如果文件已存在,它将被覆盖。这要求 FileIOPermissionAccess..::.Write。System.IO.FileMode.Create...

vb.net 将文件转化成二进制

首先引入System.IO命名空间 Imports System.IO 然后使用文件流来读入数组:Dim bytes() As Byte Using fs As New FileStream(文件路径,FileMode.Open)ReDim bytes(fs.Length-1)fs.Read(bytes,0,fs.Length)fs.Close()End Using 这样bytes就是整个文件的所有字节了 从字节生成Image:Dim img As Image...

.net中文件流处理遇到一个问题

这样写 string line;while ((line =sr.ReadLine ())!=null)然后可以调用line = 每一行的字符

2010VB.net 如何一直读取TXT文档最后一行信息,麻烦给个代码,谢谢_百度...

首先在代码的开头引入命名空间:Imports System.IO给出三个读文本文件的例子。'直接读取所有文本 Dim fileString As String = File.ReadAllText("1.txt") '把所有行弄进一个数组 Dim fileLines() As String = File.ReadAllLines("1.txt") '以流的方式一行一行读取 Using fs As F...

java io流的典型使用方式有几种

Java的IO流类中,大部分的输入流和输出流都是成对存在的,即如果存在XXXInputStream,那么就存在XXXOutputStream,反之亦然。SequenceInputStream和StringBufferInputStream是特例,没有对应的SequenceOutputStream类和StringBufferOutputStream类,许多IO操作都可能会抛出IOException异常,比如read、write、close操作。 以下是Java的IO...

Top