现在先写一点,接下来继续补全;重点内容
1.FileStream 继承Stream –字节流
Filestream四个参数:
- 文件名;
- FileMode :枚举定义了各种打开文件的方法;
- FileAccess :枚举的成员有:Read、ReadWrite 和Write;
- FileShare:共享权限。
public void UseFileStream()
{
#region filestream
//创建文件流filestream--字节流
//文件绝对路径C:\Users\acer1\Documents\Visual Studio 2010\Projects\IOstream\IOstream\bin\Debug\FileStream.txt
FileStream f = new FileStream("FileStream.txt",
FileMode.Create, FileAccess.ReadWrite, FileShare.None);
//写数据进文件
const string words = "this is that i want to write:";
byte[] b = Encoding.Default.GetBytes(words.ToArray());
byte[] temp = new byte[b.Count()];
f.Write(b, 0, b.Count());
for (int i = 0; i < 18; i++)
{
f.WriteByte((byte)i);
}
//把指针移回起点
f.Position = 0;
f.Read(temp, 0, b.Count());
//string 和byte[]互转--Encoding.Default.GetString/GetByte
string rewords = Encoding.Default.GetString(temp);
Console.WriteLine(rewords);
for (int i = 0; i < 18; i++)
{
Console.WriteLine(f.ReadByte());
}
f.Close();
#endregion
}
2.字符流StreamWriter和StreamReader –比较简单
public void UseCharStream2()
{
#region 字符流StreamWriter和StreamReader
string[] names = new string[] { "Zara Ali", "Nuha Ali" };
using (StreamWriter sw = new StreamWriter("names.txt"))
{
foreach (string s in names)
{
sw.WriteLine(s);
}
}
// 从文件中读取并显示每行
string line = "";
using (StreamReader sr = new StreamReader("names.txt"))
{
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
#endregion
}
3. 二进制文件读写流
public void UseBinaryStream()
{
#region 二进制文件读写流BinaryReader和BinaryWriter
BinaryReader br;
BinaryWriter bw;
byte b1 = 66;
int i1 = 77;
char c1 = 'a';
double d1 = 13123.1;
bool b2 = true;
string s1 = "luyang";
//创建文件
try
{
bw = new BinaryWriter(new FileStream("data", FileMode.Create, FileAccess.ReadWrite));
}
catch (IOException e)
{
Console.WriteLine(e.Message + "\n Cannot create file.");
return;
}
//数据写进文件
try
{
bw.Write(b1);
bw.Write(i1);
bw.Write(c1);
bw.Write(d1);
bw.Write(b2);
bw.Write(s1);
}
catch (IOException e)
{
Console.WriteLine(e.Message + "\n Cannot write to file.");
return;
}
bw.Close();
// 读取文件
try
{
br = new BinaryReader(new FileStream("data",
FileMode.Open));
}
catch (IOException e)
{
Console.WriteLine(e.Message + "\n Cannot open file.");
return;
}
try
{
b1 = br.ReadByte();
Console.WriteLine("Byte data: {0}", b1);
i1 = br.ReadInt32();
Console.WriteLine("Char data: {0}", i1);
c1 = br.ReadChar();
Console.WriteLine("Integer data: {0}", c1);
d1 = br.ReadDouble();
Console.WriteLine("Double data: {0}", d1);
b2 = br.ReadBoolean();
Console.WriteLine("Boolean data: {0}", b2);
s1 = br.ReadString();
Console.WriteLine("String data: {0}", s1);
}
catch (IOException e)
{
Console.WriteLine(e.Message + "\n Cannot read from file.");
return;
}
br.Close();
#endregion
}