Csharp/C Sharp by API/System.IO/FileStream
Содержание
FileStream.Position
<source lang="csharp"> using System; using System.IO; public class BinaryFileTest {
private static void Main() { FileStream fs = new FileStream("test.dat", FileMode.Create); BinaryWriter w = new BinaryWriter(fs); w.Write(1.2M); w.Write("string"); w.Write("string 2"); w.Write("!"); w.Flush(); w.Close(); fs.Close(); fs = new FileStream("test.dat", FileMode.Open); StreamReader sr = new StreamReader(fs); Console.WriteLine(sr.ReadToEnd()); fs.Position = 0; BinaryReader br = new BinaryReader(fs); Console.WriteLine(br.ReadDecimal()); Console.WriteLine(br.ReadString()); Console.WriteLine(br.ReadString()); Console.WriteLine(br.ReadChar()); fs.Close(); }
}
</source>
FileStream.Read
<source lang="csharp"> using System; using System.Windows.Forms; using System.IO; class MainClass {
public static void Main() { FileStream inStream = File.OpenRead("C:\\test.txt"); FileStream outStream = File.OpenWrite("C:\\test.txt" + ".bak"); byte[] buf = new byte[4096]; int bytesRead; while ((bytesRead = inStream.Read(buf, 0, 4096)) > 0) outStream.Write(buf, 0, bytesRead); outStream.Flush(); outStream.Close(); inStream.Close(); }
}
</source>
FileStream.ReadByte
<source lang="csharp"> using System; using System.IO; class ShowFile {
public static void Main(string[] args) { int i; FileStream fin; try { fin = new FileStream("test.cs", FileMode.Open); } catch(FileNotFoundException exc) { Console.WriteLine(exc.Message); return; } catch(IndexOutOfRangeException exc) { Console.WriteLine(exc.Message + "\nUsage: ShowFile File"); return; } // read bytes until EOF is encountered do { try { i = fin.ReadByte(); } catch(Exception exc) { Console.WriteLine(exc.Message); return; } if(i != -1) Console.Write((char) i); } while(i != -1); fin.Close(); }
}
</source>
FileStream.SetLength
<source lang="csharp"> using System; using System.IO;
public class StrmWrtr { static public void Main (string [] args) { FileStream strm; StreamWriter writer; strm = new FileStream ("text.txt", FileMode.OpenOrCreate, FileAccess.Write); writer = new StreamWriter (strm); strm.SetLength (0); while (true) { string str = Console.ReadLine (); if (str.Length == 0) break; writer.WriteLine (str); } writer.Close (); strm.Close (); } } </source>
FileStream.Write
<source lang="csharp"> using System; using System.Windows.Forms; using System.IO; class MainClass {
public static void Main() { FileStream inStream = File.OpenRead("C:\\test.txt"); FileStream outStream = File.OpenWrite("C:\\test.txt" + ".bak"); byte[] buf = new byte[4096]; int bytesRead; while ((bytesRead = inStream.Read(buf, 0, 4096)) > 0) outStream.Write(buf, 0, bytesRead); outStream.Flush(); outStream.Close(); inStream.Close(); }
}
</source>
FileStream.WriteByte
<source lang="csharp"> using System; using System.IO; class WriteToFile {
public static void Main(string[] args) { FileStream fout; try { fout = new FileStream("test.txt", FileMode.Create); } catch(IOException exc) { Console.WriteLine(exc.Message + "\nError Opening Output File"); return; } // Write the alphabet to the file. try { for(char c = "A"; c <= "Z"; c++) fout.WriteByte((byte) c); } catch(IOException exc) { Console.WriteLine(exc.Message + "File Error"); } fout.Close(); }
}
</source>
new FileStream("soaptest.xml", FileMode.Create, FileAccess.ReadWrite)
<source lang="csharp"> using System; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Soap; class SoapTest {
public static void Main() { SerialEmployee emp1 = new SerialEmployee(); SerialEmployee emp2 = new SerialEmployee(); emp1.EmployeeID = 1; emp1.LastName = "B"; emp1.FirstName = "K"; emp1.YearsService = 12; emp1.Salary = 35000.50; emp2.EmployeeID = 2; emp2.LastName = "B"; emp2.FirstName = "J"; emp2.YearsService = 9; emp2.Salary = 23700.30; Stream str = new FileStream("soaptest.xml", FileMode.Create, FileAccess.ReadWrite); IFormatter formatter = new SoapFormatter(); formatter.Serialize(str, emp1); formatter.Serialize(str, emp2); str.Close(); }
}
[Serializable] public class SerialEmployee {
public int EmployeeID; public string LastName; public string FirstName; public int YearsService; public double Salary; public SerialEmployee() { EmployeeID = 0; LastName = null; FirstName = null; YearsService = 0; Salary = 0.0; }
}
</source>
new FileStream(String fileName, FileMode.Open)
<source lang="csharp">
using System; using System.Collections.Generic; using System.Collections.Specialized; using System.IO; using System.IO.rupression; using System.Net; using System.Net.Mail; using System.Net.Sockets; using System.Runtime.InteropServices; using System.Text; using System.Threading; public class MainClass {
public static void Main() { using (Stream from = new FileStream("c:\\test.txt", FileMode.Open)) using (Stream to = new FileStream("c:\\test2.txt", FileMode.OpenOrCreate)) { int readCount; byte[] buffer = new byte[1024]; while ((readCount = from.Read(buffer, 0, 1024)) != 0) { to.Write(buffer, 0, readCount); } } }
}
</source>