1.什么是流? 计算机中的流其实是一种信息的转换。它是一种有序流,因此相对于某一对象,通常我们把对象接收外界的信息输入(Input)称为输入流,相应地从对象向外输出(Output)信息为输出流,合称为输入/输出流(I/O Streams)。对象间进行信息或者数据的交换时总是先将对象或数据转换为某种形式的流,再通过流的传输,到达目的对象后再将流转换为对象数据。所以,可以把流看作是一种数据的载体,通过它可以实现数据交换和传输。
在计算机编程中,文件的读写不是直接从硬盘进行操作的,而是在内存中建立一个文件缓冲流,也就是说,计算机开辟一块内存空间,专门用来存储写入文件的内容,或从文件读出来的内容,写入文件的内容或读出来的内容先存在这个内存空间里(缓冲流),然后写入文件,或者做其他操作(读出来,修改什么的)。这样做的原因是,CPU访问硬盘比访问内存慢多了,所以,先把要写入或读出来的数据存在缓冲区,后面使用的时候可以直接使用,不用再次访问硬盘,提高了效率。
在写入数据时,经常用到flush()方法,该方法清理当前写入器的所有缓冲区,并使所有缓冲数据写入基础流。其实就是强制将缓冲流数据写入硬盘,这样即使程序突然中断,内容也写进文件了。
2.怎么用流读取读写txt?(读取Word和Excel另有他法)
下面举一个例子,来说明怎样使用流读写txt。
1.如果目录不存在,创建一个目录,并在目录下创建txt
2.向txt写入内容,关闭写入流
3.从txt里读取内容,并展示,最后关闭读取流
下面简单总结StreamWriter类和StreamReader类经常用到的方法:
1.StreamWriter类常用方法
* Flush(); //清理当前写入器的所有缓冲区,并使所有缓冲数据写入基础流。即将缓冲区数据写进磁盘的文件里
* Write(Char); //将字符写入流,不换行
* WriteLine(String); //将后跟行结束符的字符串写入文本字符串或流。即写完换行
* 其他各式各样的Write和WriteLine
* Close(); //关闭当前 StreamWriter 对象和基础流。
2.StreamReader类常用方法
* Read(); //读取输入流中的下一个字符并使该字符位置提升一个字符。读取一个字符
* ReadLine(); //从当前流中读取一行字符并将数据作为字符串返回。读取一行数据
* ReadToEnd(); //读取来自流的当前位置到结尾的所有字符。
* Close(); //关闭 StreamReader 对象和基础流,并释放与读取器关联的所有系统资源。