1 / 24

BİL527 – Bilgisayar Programlama I

BİL527 – Bilgisayar Programlama I. File Operations. Contents. Structure of a File Reading/Writing Texts from/to Files File and Directory Operations. Definition of File. A file is a logically contiguous stream of bytes with certain properties Name Size (Number of bytes in the file)

babu
Download Presentation

BİL527 – Bilgisayar Programlama I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BİL527 – Bilgisayar Programlama I File Operations

  2. Contents • Structure of a File • Reading/Writing Texts from/to Files • File and Directory Operations

  3. Definition of File • A file is a logically contiguous stream of bytes with certain properties • Name • Size (Number of bytes in the file) • Owner (The user who owns the file) • Permission (Who can access the file) • Creation date • Last modification date • etc.

  4. File Types • Text Files • In a text file, the byte represent characters making it possible for a human to examine the file or edit it using a text editor • Files which can be opened by Notepad • C# source codes • Binary Files • In a binary file, bytes do not necessarily represent characters. Groups of bytes might represent an int, float, double, etc. • Executable files • Word, Excel, PowerPoint files • Files which can’t be opened by Notepad

  5. Byte # 0 1 Byte # 0 1 2 3 4 BinaryFileEx.dat 2 bytes long 0x30 0x75 TextFileEx.txt 5 bytes long ‘3’ ‘0’ ‘0’ ‘0’ ‘0’ Text File vs. Binary File • Consider how we can store short int30000 = 0x7530, which occupies 2 bytes in memory • One option is to store the number in text form as chars ‘3’, ‘0’, ‘0’, ‘0’, ‘0’ • Using ASCII chars, we need 5 bytes to store this number • The other option is to store the number in binary, which would take as few as 2 bytes • Assumes little-endian representation

  6. Text File vs. Binary File • Why distinguish between text and binary files? • The reason is some operating systems, e.g., Windows stores text files and binary files in different ways • Text files are divided into lines, so there must be some special way o mark the end of each line • Binary files are easy to use by programs and text files are easy to understand for humans

  7. File Classes in .NET Framework

  8. File Operations • Creating a new file • Appending to an existing file • Reading an existing file

  9. Creating a Text File • Create a StreamWriterobject by specifying a file path • Use functions Writeand WriteLineto write into the file, just like printing on the screen • Close the file

  10. Example using System.IO; namespace FileOpDeneme { class Program { static void Main(string[] args) { StreamWritersw = new StreamWriter("Test.txt"); sw.WriteLine("Roses are red"); sw.WriteLine("Violets are blue"); sw.Close(); } } }

  11. Appending to a Text File • When you create a StreamWriterobject by new StreamWriter(filename), and file exists, then the file contents are deleted • If you want to append to an existing file, use another constructor of StreamWriterclass, which is StreamWriter(string path, bool append)

  12. Example using System.IO; namespace FileOpDeneme { class Program { static void Main(string[] args) { StreamWritersw = new StreamWriter("Test.txt", true); sw.WriteLine("Sugar is sweet"); sw.WriteLine("And so are you"); sw.Close(); } } }

  13. Reading an Existing File • Create a StreamReaderobject by specifying the file path • Use ReadLine() method to read a single line, or ReadToEnd() method to read all contents of the file • Close the file

  14. Example usingSystem; using System.IO; namespaceFileOpDeneme{ classProgram { staticvoid Main(string[] args) { StreamReadersr = new StreamReader("Test.txt"); stringcontents = sr.ReadToEnd(); Console.WriteLine(contents); sr.Close(); } } }

  15. using • The files should be closed immediately after finishing work on them • If you forget to close a file, some problems may occur • If you use the file inside a usingblock, it is automatically closed, i.e. all of its resources are released

  16. Example using System; using System.IO; namespace FileOpDeneme { class Program { static void Main(string[] args) { string contents; using (StreamReadersr = new StreamReader("Test.txt")) { contents = sr.ReadToEnd(); } Console.WriteLine(contents); } } }

  17. Path Names and Relative Paths • If you don’t specify the path of a file, it is searched in the current directory, i.e. the directory where your executable file is located • You can learn the current directory by the method Directory.GetCurrentDirectory() • You can set the working directory by Directory.SetCurrentDirectory() • You can specify the full path of the file like @“C:\MyPrograms\BIL527\Test.txt”

  18. The FileStream Object • With StreamReaderand StreamWriterobjects, you can work only on characters • If you need to work on bytes, you have to use a FileStreamobject • On a FileStreamobject, you can goforward or backward on the file, and read from or write to anywhere on the file

  19. Obtaining File and Directory Information • The FileInfoclass can be used to obtain information about a specific file FileInfo info = new FileInfo(“Test.txt”); info.Attributes, info.CreationTime, info.LastAccessTime, info.LastWriteTime, info.Length, etc. • If you want to obtain information about a directory, you can use the DirectoryInfoclass DirectoryInfo info = new DirectoryInfo(@“c:\”); info.Parent, info.Root, info.GetFiles(), info.GetDirectories(), etc.

  20. File System Operations • File.Copy(src, dest): src is copied to dest • File.Move(src, dest): src is moved to dest • File.Delete(filename): Deletes the file • File.Exists(file): Returns true if file exists • Check for other static methods in the File class

  21. Directory Operations • Directory.CreateDirectory() • Directory.Delete() • Directory.Exists() • Directory.Move() • Directory.GetCurrentDirectory() • Directory.SetCurrentDirectory() • Directory.GetLogicalDrives() • etc.

  22. Monitoring the File System • Your program can be notified when a file or directory is being modified • For this purpose, you can use the FileSystemWatcherclass • For more information, you may refer to the textbook, MSDN help, or Google

  23. Compressed Files • You can use DeflateStreamand GZipStreamclasses to read and write compressed data from and to files • These classes work with byte data much like FileStream • The classes are located under the System.IO.Compression namespace • For more information, refer to the textbook, MSDN help, or Google

  24. Binary Files • You can use BinaryReaderand BinaryWriterclasses to work on binary files • You can serializeobjects so that they can be saved to or read from files • Refer as Serialization • For more information, refer to the textbook, MSDN help, or Google

More Related