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!