Csharp/C Sharp by API/System.IO/FileStream

Материал из .Net Framework эксперт
Версия от 12:12, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

FileStream.Position

  
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();
    }
}


FileStream.Read

 
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();
  }
}


FileStream.ReadByte

 
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();
  }
}


FileStream.SetLength

  
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 ();
        }
    }


FileStream.Write

 
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();
  }
}


FileStream.WriteByte

 
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();
  }
}


new FileStream("soaptest.xml", FileMode.Create, FileAccess.ReadWrite)

  
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;
   }
}


new FileStream(String fileName, FileMode.Open)

    

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);
            }
        }
    }
}