1 / 12

Filhantering

Filhantering. Grundprincipen för filhantering Öppna filen Gör nå’t (läs eller skriv) Stäng filen . Datafiler. Filer kan innehålla Ren text (ex källkodsfiler) Formaterad text (ex .doc-filer) Binärdata (binär information, .exe-filer). C# I/O Streams.

deon
Download Presentation

Filhantering

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. Filhantering Grundprincipen för filhantering Öppna filen Gör nå’t (läs eller skriv) Stäng filen 

  2. Datafiler • Filer kan innehålla • Ren text (ex källkodsfiler) • Formaterad text (ex .doc-filer) • Binärdata (binär information, .exe-filer)

  3. C# I/O Streams • C# använder “strömmar” för in- och utmatningsoperationer ”inström” • Inströmmar används för att “läsa” data Program Källa, Ex tangentbord ”utström” • Utströmmar används för att “skriva” data Program Destination, ex. fil på hårddisk

  4. Dataströmmar Utenhet 101010101 Hårddisk 101010101 Processor 101010101 In- och utenhet 101010101 Inenhet

  5. C# I/O Streams • Kommunikationskanalen kan vara en nätverkslänk, en minnesbuffert, en fil eller en användarterminal • Det spelar ingen roll varifrån informationen kommer, eller vilken typ av data som läses eller skrivs, algoritmerna blir ändå i stort desamma • Därför kan strömmarna användas med likartade metoder

  6. System.IO • Denna namnrymnd innehåller klasser för dataströmmar till och från filer och vanligen till vår bildskärm (klassen Console) . Även dataströmmar kan vi se som ”filer”, dvs måste öppnas och stängas…

  7. System.IO Denna namnrymd innehåller klasser för dataströmmar till och från filer, strängar och minne. Klasserna kan indelas i tre kategorier: • För hantering av filer och kataloger Directory- och File klasser • För läsning/skrivning av bytevärden Stream-klasser • För läsning/skrivning av text Reader/Writer-klasser

  8. Att skriva till en textfil Öppna StreamWriter utfil = new StreamWriter("Testa.txt"); utfil.Write("Du kan använda samma metoder här "); utfil.WriteLine("som mot 'Console.Out', ex 'WriteLine'!"); utfil.Close(); Skriv Stäng

  9. Att läsa från en textfil Öppna StreamReader infil = new StreamReader("Testa.txt"); while (true) { string line = infil.ReadLine(); if (line == null) break; Console.WriteLine(line); } infil.Close(); Läs Stäng

  10. End-Of-File (EOF) • Från en sekventiell fil läses allt i ”tur och ordning”, exempelvis rad efter rad, eller post efter post. • När läsningen sker och det inte längre finns något kvar att läsa in från filen uppstår EOF. • Hur EOF hanteras varierar mycket mellan olika språk och utvecklingsmiljöer. Ett vanligt sätt är att en ”statusflagga” blir satt, som vi kan testa om den är ”true” eller ”false”. • I C# ser vi att vi kommit till EOF genom att resultatet av inläsningen blir null.

  11. Vad händer om vi fortsätter efter EOF? • Även detta varierar mycket mellan olika språk och utvecklingsmiljöer. Några vanliga beteenden: • Ett felmeddelande ges (exempelvis att ett Exception kastas) • Den sista posten bearbetas igen och igen och igen…

  12. Read-ahead • I miljöer där en statusflagga används för EOF, brukar detta kombineras med Read-Ahead, dvs att det sker en läsning från filen innan loopen börjar, men som inte flyttar punkten för nästa inläsning. • Därigenom vet vi om det finns något att läsa in, och kan använda det i vår loop. • Exempel, om vi använt en sådan filtyp: while ( !infil.EOF ) { string line = infil.ReadLine(); Console.WriteLine(line); }

More Related