流操作
来源:互联网 发布:安卓收费软件 编辑:程序博客网 时间:2024/06/13 19:12
StreamReader 与 FileStream 的区别用法 (有关StreamReader的内容参考http://blog.sina.com.cn/s/blog_796ffec50100te51.html)
StreamReader 旨在以一种特定的编码输出字符,而 Stream 类用于字节的输入和输出。
使用 StreamReader 读取标准文本文件的各行信息。可以按照指定的编码集来读取,读取文本功能比较强大而FileStream 的文件读取效率较高,读取字节流比较方便
FileStream的用法
1.读入操作
在读入button按钮中添加代码:
FileStream fileStream = new FileStream(@"..\??.text",FileMode.Open);
StreamReader sr = new StreamReader(fileStream,Encoding.GetEncoding("gb2312"),true);
textBox1.Text = sr.ReadToEnd() + "\n";
fileStream.Close();
其中,涉及到解码问题,在这里,encode一定要设定为“gb2312”,gb2312是中文编码格式,如果不这样设定,会产生接收乱码问题。
2.复制文件
private void button3_Click(object sender, EventArgs e)
{
CopyFile(@"E:\91卫图助手\玩一玩别当真\玩一玩别当真.txt", @"E:\91卫图助手\玩一玩别当真\玩一玩别当真1.txt");
FileStream fileStream = new FileStream(@"E:\91卫图助手\玩一玩别当真\玩一玩别当真1.txt", FileMode.Open);
StreamReader sr = new StreamReader(fileStream, Encoding.GetEncoding("gb2312"), true);
textBox1.Text = sr.ReadToEnd() + "\n";
fileStream.Close();
}
static void CopyFile(string inName, string toName)
{
using (FileStream inStream = File.OpenRead(inName))//使用using可以自动释放资源
{
using (FileStream toStream = File.OpenWrite(toName))
{
CopyStream(inStream, toStream, 1);//bufferSize = 1,只要>0的值,就能读到所有的值
}
}
}
static void CopyStream(Stream inStream, Stream toStream,int bufferSize)
{
byte[] buffer = new byte[bufferSize];
int n;
while((n=inStream.Read(buffer,0,bufferSize))>0)
{
//向toStream流中写入字节系列
toStream.Write(buffer, 0, n);
//获取inStream流位置,让toStream流的位置和它保持一致
toStream.Position = inStream.Position;
}
}
3.创建文件并写入文件
private void button2_Click(object sender, EventArgs e)
{
using (FileStream fs = File.Create(@"E:\91卫图助手\玩一玩别当真\玩一玩别当真2.txt"))
{
string strCopy = "";
strCopy = textBox1.Text;
byte[] buffer = Encoding.UTF8.GetBytes(strCopy);
fs.Write(buffer, 0, buffer.Length);
fs.Flush();
}
}
- 流操作
- 流操作
- IO操作 流操作练习
- STL 文件操作 流文件操作
- IO流操作与文件File操作
- 流操作的语法
- 流操作的语法
- Java流操作
- java-流的操作
- 二进制格式文件流操作
- 二进制流操作(实例)
- 流操作的语法
- Delphi流操作技巧
- Delphi流操作技巧
- Delphi流操作技巧
- delphi 内存流 操作
- C++文件流操作
- Java中的流操作
- Android简易实战教程--第三十七话《NotifiCation》
- 中介模式
- HDU5916-Harmonic Value Description
- FIDDLER的使用方法及技巧总结[连载3]---FIDDLER使用技巧及方法
- hihocoder 1103 数位dp+记忆化搜索
- 流操作
- codeforces 429B
- 组合模式
- 欢迎使用CSDN-markdown编辑器
- 图论基础
- 这是权威的JDK与JRE的联系与区别
- java线程学习知识点
- OC__part11.1
- 各个算法(pascal)的时间复杂度