c#中文件流的操作
1、FileStream:是以字节为单位,可以操作所有类型的数据文件
StreamReader和StreamWrite:以字符为单位,操作字符串等
他们都存在与IO的命名空间下,添加命名空间快捷方式ATL+SHIFT+F10
2、//创建filestream文件流对象有三个属性
* 路径,filemode,fileacess
* 写入步骤:1.创建对象 2.将要写入的字符串 3.将字符串通过encoding的方法转换成字节 4.通过.write方法将字节数组写入到文件中
* 读入步骤:1.创建对象 2.创建一个限定大小的byte数组 3.通过.read方法读取有限字节的长度 4.将读取到的数据转换成字符串 5.打印字符串
3、FileStream读取文件
using (FileStream fsRead=new FileStream(@"C:\Documents and Settings\Administrator\桌面\直接按组分配.txt",FileMode.OpenOrCreate,FileAccess.Read))
{
byte[] by=new byte[1024*1024*5];
int r=fsRead.Read(by, 0, by.Length);
string s=Encoding.Default.GetString(by, 0, r);
Console.WriteLine(s);
}
using(创建对象,并且定义文件流的动作)
{
具体操作
}
这样写可以自动关闭文件流释放空间
4、FileStream写入文件
using (FileStream fsWrite = new FileStream(@"C:\Documents and Settings\Administrator\桌面\1.txt", FileMode.OpenOrCreate, FileAccess.Write))
{
string s = "今天天气不错,让我们出去刷刷吧";
byte[] buffer = Encoding.Default.GetBytes(s);
fsWrite.Write(buffer, 0, buffer.Length);
Console.WriteLine("写入成功");
Console.ReadKey();
}
5、复制多媒体文件
先读取原文件,然后再写入到新文件中
using (FileStream fsRead = new FileStream(@"C:\Documents and Settings\Administrator\桌面\1_.apk", FileMode.OpenOrCreate, FileAccess.Read))
{
//创建一个负责写入的流
using (FileStream fsWrite = new FileStream(@"C:\Documents and Settings\Administrator\桌面\2.apk", FileMode.OpenOrCreate, FileAccess.Write))
{
byte[] buffer = new byte[1024 * 1024 * 5];
////因为文件可能比较大所以在读取的时候应该用循坏去读取
while (true)
{
////返回本次实际读取到的字节数
int r = fsRead.Read(buffer, 0, buffer.Length);
if (r == 0)
{
break;
}
fsWrite.Write(buffer, 0, r);///写入
}
}
}
Console.ReadKey();
结果会生成两个一样大小的文件,如图