Lese Filer med StreamReader
Du kan åpne og lese filer ved hjelp av programmeringsspråket C#.
For å lese en fil, oppretter vi et nytt StreamReader-objekt. StreamReader-objektet tar inn filbanen som parameter.
Begrepet "objekt" vil bli tydeligere i senere seksjoner, men for forståelsens skyld – et objekt er rett og slett en instans av en datatyp, og StreamReader er en datatype på samme måte som int eller float. Verdiene 1, 2.5f og "Hello World" kan teknisk sett omtales som "objekter" av henholdsvis int-, float- og string-datatypene.
index.cs
1StreamReader fileVarName = new StreamReader(fullPath);
Her representerer fileVarName variabelnavnet der du lagrer StreamReader-objektet, og fullPath skal være den fullstendige filbanen som en streng.
For eksempel kan du åpne filen "text.txt" på Skrivebordet med banen C:/Users/Admin/Desktop/text.txt:
index.cs
1StreamReader textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt");
Du kan også bruke implisitt deklarasjon for å gjøre syntaksen litt kortere: var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt");
Anta at filen text.txt har følgende innhold:
text.txt
12345This is some example text
Et StreamReader-objekt har en ReadLine-metode som leser én linje fra filen og returnerer den:
index.cs
1234var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line = textFile.ReadLine(); Console.WriteLine(line);
Utdata:
This
Metoden ReadLine flytter automatisk markøren til neste linje, så når den kalles igjen, leser den neste linje hvis det finnes en, ellers returnerer den bare null (ingenting):
index.cs
12345678var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); Console.WriteLine(textFile.ReadLine()); // This Console.WriteLine(textFile.ReadLine()); // is Console.WriteLine(textFile.ReadLine()); // some Console.WriteLine(textFile.ReadLine()); // example Console.WriteLine(textFile.ReadLine()); // text Console.WriteLine(textFile.ReadLine()); // NULL
Utdata:
This
is
some
example
text
For å lese alle linjene fra en fil kan vi bruke en while-løkke med en betingelse som sjekker om neste linje er null eller ikke. Følgende er en enkel måte å gjøre dette på:
index.cs
12345678var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line = textFile.ReadLine(); while(line != null) { Console.WriteLine(line); line = textFile.ReadLine(); }
Utdata:
This
is
some
example
text
Du kan gjøre koden ovenfor litt ryddigere ved å bruke et triks, og for dette skal vi se nærmere på tilordningssetninger. En tilordningssetning har også en returverdi, som er verdien som blir tildelt. Dette kan illustreres med et eksempel:
index.cs
12int a; Console.WriteLine(a = 7);
Utdata:
7
Den skriver ut 7 fordi uttrykket a = 7 returnerer 7, som er verdien som tildeles a.
Denne informasjonen kan brukes til å gjøre kreative ting, som å tildele samme verdi til flere variabler i én enkelt setning:
index.cs
123456789int a = 1; int b = 1; int c = 1; a = b = c = 9; Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c);
Utdata:
9
9
9
Med denne informasjonen kan fil-lesekoden forenkles ved å fjerne unødvendig kode:
index.cs
1234567var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line; while((line = textFile.ReadLine()) != null) { Console.WriteLine(line); }
Inne i betingelsen brukte du først en tildelingssetning line = textFile.ReadLine() som automatisk oppdaterer variabelen line og deretter sjekker om den er null basert på returverdien fra setningen.
Etter at filen er lest må du også lukke den ved å bruke Close-metoden, ellers kan det potensielt føre til minnelekkasjer eller at filen blir låst og utilgjengelig fra andre steder så lenge programmet kjører.
Den endelige koden vil se slik ut:
index.cs
123456789var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line; while ((line = textFile.ReadLine()) != null) { Console.WriteLine(line); } textFile.Close();
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 2.04
Lese Filer med StreamReader
Sveip for å vise menyen
Du kan åpne og lese filer ved hjelp av programmeringsspråket C#.
For å lese en fil, oppretter vi et nytt StreamReader-objekt. StreamReader-objektet tar inn filbanen som parameter.
Begrepet "objekt" vil bli tydeligere i senere seksjoner, men for forståelsens skyld – et objekt er rett og slett en instans av en datatyp, og StreamReader er en datatype på samme måte som int eller float. Verdiene 1, 2.5f og "Hello World" kan teknisk sett omtales som "objekter" av henholdsvis int-, float- og string-datatypene.
index.cs
1StreamReader fileVarName = new StreamReader(fullPath);
Her representerer fileVarName variabelnavnet der du lagrer StreamReader-objektet, og fullPath skal være den fullstendige filbanen som en streng.
For eksempel kan du åpne filen "text.txt" på Skrivebordet med banen C:/Users/Admin/Desktop/text.txt:
index.cs
1StreamReader textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt");
Du kan også bruke implisitt deklarasjon for å gjøre syntaksen litt kortere: var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt");
Anta at filen text.txt har følgende innhold:
text.txt
12345This is some example text
Et StreamReader-objekt har en ReadLine-metode som leser én linje fra filen og returnerer den:
index.cs
1234var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line = textFile.ReadLine(); Console.WriteLine(line);
Utdata:
This
Metoden ReadLine flytter automatisk markøren til neste linje, så når den kalles igjen, leser den neste linje hvis det finnes en, ellers returnerer den bare null (ingenting):
index.cs
12345678var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); Console.WriteLine(textFile.ReadLine()); // This Console.WriteLine(textFile.ReadLine()); // is Console.WriteLine(textFile.ReadLine()); // some Console.WriteLine(textFile.ReadLine()); // example Console.WriteLine(textFile.ReadLine()); // text Console.WriteLine(textFile.ReadLine()); // NULL
Utdata:
This
is
some
example
text
For å lese alle linjene fra en fil kan vi bruke en while-løkke med en betingelse som sjekker om neste linje er null eller ikke. Følgende er en enkel måte å gjøre dette på:
index.cs
12345678var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line = textFile.ReadLine(); while(line != null) { Console.WriteLine(line); line = textFile.ReadLine(); }
Utdata:
This
is
some
example
text
Du kan gjøre koden ovenfor litt ryddigere ved å bruke et triks, og for dette skal vi se nærmere på tilordningssetninger. En tilordningssetning har også en returverdi, som er verdien som blir tildelt. Dette kan illustreres med et eksempel:
index.cs
12int a; Console.WriteLine(a = 7);
Utdata:
7
Den skriver ut 7 fordi uttrykket a = 7 returnerer 7, som er verdien som tildeles a.
Denne informasjonen kan brukes til å gjøre kreative ting, som å tildele samme verdi til flere variabler i én enkelt setning:
index.cs
123456789int a = 1; int b = 1; int c = 1; a = b = c = 9; Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c);
Utdata:
9
9
9
Med denne informasjonen kan fil-lesekoden forenkles ved å fjerne unødvendig kode:
index.cs
1234567var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line; while((line = textFile.ReadLine()) != null) { Console.WriteLine(line); }
Inne i betingelsen brukte du først en tildelingssetning line = textFile.ReadLine() som automatisk oppdaterer variabelen line og deretter sjekker om den er null basert på returverdien fra setningen.
Etter at filen er lest må du også lukke den ved å bruke Close-metoden, ellers kan det potensielt føre til minnelekkasjer eller at filen blir låst og utilgjengelig fra andre steder så lenge programmet kjører.
Den endelige koden vil se slik ut:
index.cs
123456789var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line; while ((line = textFile.ReadLine()) != null) { Console.WriteLine(line); } textFile.Close();
Takk for tilbakemeldingene dine!