1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.IO;
6
7 namespace Files
8 {
9 class Program
10 {
11 static byte[] byDataValue = new byte[200];
12 static char[] charDataValue = new char[200];
13 static void Main(string[] args)
14 {
15 FileStreamTest();
16 StreamWriteFile();
17 StreamReaderTestTwo();
18 Console.ReadKey();
19 }
20
21 /// <summary>
22 /// 读文件
23 /// </summary>
24 private static void FileStreamTest()
25 {
26 try
27 {
28 FileStream fs = new FileStream(@"f:\test.txt", FileMode.Open);
29 //fs.Seek(20, SeekOrigin.Begin);
30 fs.Read(byDataValue, 0, 200);
31 fs.Close();
32 }
33 catch (Exception)
34 {
35 throw;
36 }
37 //将字节转换成字符
38 Decoder dc = Encoding.UTF8.GetDecoder();
39 //字节数组转换成字符数组
40 dc.GetChars(byDataValue,0,byDataValue.Length,charDataValue,0);
41
42 foreach (char c in charDataValue)
43 {
44 Console.Write(c);
45 }
46 }
47
48 /// <summary>
49 /// 写文件
50 /// </summary>
51 private static void StreamWriteFile()
52 {
53 try
54 {
55 FileStream fs = new FileStream(@"f:\test.txt", FileMode.Create);
56 StreamWriter sw = new StreamWriter(fs);
57 sw.WriteLine("hello world , this is c sharp in dot net");
58 sw.Close();
59 }
60 catch (Exception)
61 {
62 throw;
63 }
64 }
65
66 /// <summary>
67 /// 读取文件1
68 /// </summary>
69 private static void StreamReaderTest()
70 {
71 string sLine = "";
72 try
73 {
74 FileStream fsFile = new FileStream(@"f:\test.txt", FileMode.Open);
75 StreamReader srReader = new StreamReader(fsFile);
76 //读取文件(读取大文件时,最好不要用此方法)
77 sLine = srReader.ReadToEnd();
78 srReader.Close();
79 Console.Write(sLine);
80 }
81 catch(Exception e)
82 {
83 throw e;
84 }
85 }
86
87 /// <summary>
88 /// 读取文件2
89 /// </summary>
90 private static void StreamReaderTestTwo()
91 {
92 string sLine = "";
93 try
94 {
95 FileStream fsFile = new FileStream(@"f:\test.txt", FileMode.Open);
96
97 StreamReader srReader = new StreamReader(fsFile);
98 int iChar;
99 iChar = srReader.Read();
100 while (iChar != -1)
101 {
102 sLine += (Convert.ToChar(iChar));
103 iChar = srReader.Read();
104 }
105 srReader.Close();
106 Console.WriteLine(sLine);
107 }
108 catch (Exception e)
109 {
110 throw e;
111 }
112 }
113 }
114
115 /*
116 注:FileMode枚举成员值在文件存在与不存在时的情况
117
118 Append
119 文件存在时:打开文件,流指向文件的末尾,只能与枚举FileAcess.Write联合使用
120 文件不存在时:创建一个新文件。只能与枚举FileAcess.Write联合使用
121
122 Create
123 文件存在时:删除该文件,然后创建新文件
124 文件不存在时:创建新文件
125
126 CreateNew
127 文件存在时:抛出异常
128 文件不存在时:创建新文件
129
130 Open
131 文件存在时:打开现有文件,流指向文件开头
132 文件不存在时:抛出异常
133
134 OpenOrCreate
135 文件存在时:打开文件,流指向文件开头
136 文件不存在时:创建新文件
137
138 Truhncate
139 文件存在时:打开现有文件,清除其内容。流指向文件开头,保留文件的初始创建日期。
140 文件不存在时:抛出异常
141 *
142 */
143
144 }