1 使用StreamWriter向文件写入数据
[c-sharp] view plain copy print ?
- public static void WriteToLog(string logFileName, string data)
- {
- using (FileStream fileStream = new FileStream(logFileName, FileMode.Append, FileAccess.Write, FileShare.None))
- {
- using (StreamWriter streamWrtie = new StreamWriter(fileStream))
- {
- streamWrtie.Write(data);
- }
- }
- }
public static void WriteToLog(string logFileName, string data) { using (FileStream fileStream = new FileStream(logFileName, FileMode.Append, FileAccess.Write, FileShare.None)) { using (StreamWriter streamWrtie = new StreamWriter(fileStream)) { streamWrtie.Write(data); } } }
2 用StreamReader读取文本
[c-sharp] view plain copy print ?
- public static string ReadAllLog(string logFileName)
- {
- if (!File.Exists(logFileName))
- {
- throw (new FileNotFoundException("logfile does not exit", logFileName));
- }
- string contents = "";
- using (FileStream fileStream = new FileStream(logFileName, FileMode.Open, FileAccess.Read, FileShare.None))
- {
- using (StreamReader streamRead = new StreamReader(fileStream))
- {
- contents = streamRead.ReadToEnd();
- }
- }
- return contents;
- }
public static string ReadAllLog(string logFileName) { if (!File.Exists(logFileName)) { throw (new FileNotFoundException("logfile does not exit", logFileName)); } string contents = ""; using (FileStream fileStream = new FileStream(logFileName, FileMode.Open, FileAccess.Read, FileShare.None)) { using (StreamReader streamRead = new StreamReader(fileStream)) { contents = streamRead.ReadToEnd(); } } return contents; }
3 要逐行的读取文本,则使用peek()方法
[c-sharp] view plain copy print ?
- public static void ReadLogPeeking(string logFileName)
- {
- if (!File.Exists(logFileName))
- {
- throw (new FileNotFoundException("logfile does not exit", logFileName));
- }
- using (FileStream fileStream = new FileStream(logFileName, FileMode.Open, FileAccess.Read, FileShare.None))
- {
- using (StreamReader streamReader = new StreamReader(fileStream))
- {
- while (streamReader.Peek() != -1)
- {
- Console.WriteLine(streamReader.ReadLine());
- }
- }
- }
- }
public static void ReadLogPeeking(string logFileName) { if (!File.Exists(logFileName)) { throw (new FileNotFoundException("logfile does not exit", logFileName)); } using (FileStream fileStream = new FileStream(logFileName, FileMode.Open, FileAccess.Read, FileShare.None)) { using (StreamReader streamReader = new StreamReader(fileStream)) { while (streamReader.Peek() != -1) { Console.WriteLine(streamReader.ReadLine()); } } } }
或
[c-sharp] view plain copy print ?
- public static void ReadLogByLines(string logFileName)
- {
- if (!File.Exists(logFileName))
- {
- throw (new FileNotFoundException("logfile does not exit", logFileName));
- }
- using (FileStream fileStream = new FileStream(logFileName, FileMode.Open, FileAccess.Read, FileShare.None))
- {
- using (StreamReader streamReader = new StreamReader(fileStream))
- {
- string text = streamReader.ReadLine();
- while (text != null)
- {
- Console.WriteLine(text);
- text = streamReader.ReadLine();
- }
- }
- }
- }
public static void ReadLogByLines(string logFileName) { if (!File.Exists(logFileName)) { throw (new FileNotFoundException("logfile does not exit", logFileName)); } using (FileStream fileStream = new FileStream(logFileName, FileMode.Open, FileAccess.Read, FileShare.None)) { using (StreamReader streamReader = new StreamReader(fileStream)) { string text = streamReader.ReadLine(); while (text != null) { Console.WriteLine(text); text = streamReader.ReadLine(); } } } }
4 若要读取一个字节则用read()方法
[c-sharp] view plain copy print ?
- public static void ReadLogAsBytes(string logFileName)
- {
- if (!File.Exists(logFileName))
- {
- throw (new FileNotFoundException("logfile does not exit", logFileName));
- }
- using (FileStream fileStream = new FileStream(logFileName, FileMode.Open, FileAccess.Read, FileShare.None))
- {
- using (StreamReader streamReader = new StreamReader(fileStream))
- {
- while (streamReader.Peek() != -1)
- {
- Console.WriteLine(streamReader.Read());
- }
- }
- }
- }
public static void ReadLogAsBytes(string logFileName) { if (!File.Exists(logFileName)) { throw (new FileNotFoundException("logfile does not exit", logFileName)); } using (FileStream fileStream = new FileStream(logFileName, FileMode.Open, FileAccess.Read, FileShare.None)) { using (StreamReader streamReader = new StreamReader(fileStream)) { while (streamReader.Peek() != -1) { Console.WriteLine(streamReader.Read()); } } } }
5 按块读取,则要创建一个任意长度的缓冲区,这个长度根据你的性能需求来决定
[c-sharp] view plain copy print ?
- public static void ReadAllBuffereLog(string logFileName)
- {
- if (!File.Exists(logFileName))
- {
- throw (new FileNotFoundException("logfile does not exit", logFileName));
- }
- using (FileStream fileStream = new FileStream(logFileName, FileMode.Open, FileAccess.Read, FileShare.None))
- {
- using (StreamReader streamReader = new StreamReader(fileStream))
- {
- while (streamReader.Peek() != -1)
- {
- char[] buffer=new char [10];
- int bufferFileSize = streamReader.Read(buffer, 0, 10);
- foreach (char c in buffer)
- {
- Console.Write(c);
- }
- Console.WriteLine();
- Console.WriteLine(bufferFileSize);
- }
- }
- }
- }