Istnieje wiele różnych sposobów odczytu i zapisu plików ( plików tekstowych , a nie binarnych) w języku C #.
Potrzebuję tylko czegoś, co jest łatwe i wymaga najmniejszej ilości kodu, ponieważ będę dużo pracować z plikami w moim projekcie. Potrzebuję tylko czegoś, string
ponieważ wszystko, czego potrzebuję, to czytać i pisać string
.
string.Write(filename)
. Dlaczego rozwiązanie Microsofts jest prostsze / lepsze niż moje?"foo".Write(fileName)
, możesz łatwo utworzyć rozszerzenie, aby to polubićpublic static Write(this string value, string fileName) { File.WriteAllText(fileName, value);}
i używać w swoich projektach.Oprócz
File.ReadAllText
,File.ReadAllLines
, orazFile.WriteAllText
(i podobne pomocnicy odFile
klasy) pokazane w innej odpowiedzi można użyćStreamWriter
/StreamReader
klas.Pisanie pliku tekstowego:
Czytanie pliku tekstowego:
Uwagi:
readtext.Dispose()
zamiastusing
, ale nie zamknie pliku / czytnika / programu zapisującego w przypadku wyjątkówusing
/Close
jest bardzo częstą przyczyną „dlaczego dane nie są zapisywane do pliku”.źródło
using
Twoje strumienie są pokazane w innej odpowiedzi - stackoverflow.com/a/7571213/477420using System.IO;
użyć StreamWriter i StreamReader .new StreamWriter("write.txt", true)
utworzy plik, jeśli nie plik nie istnieje, w przeciwnym razie zostanie dołączony do istniejącego pliku.źródło
fs
na koniec nie reagujesz ?Prosty, łatwy, a także usuwa / czyści obiekt po zakończeniu.
źródło
Najłatwiejszy sposób czytania z pliku i zapisu do pliku:
źródło
File.WriteAllText
do pisania części?@AlexeiLevenkov wskazał mi inny „najprostszy sposób”, mianowicie metodę rozszerzenia . Zajmuje tylko trochę kodowania, a następnie zapewnia absolutnie najłatwiejszy sposób odczytu / zapisu, a ponadto oferuje elastyczność tworzenia odmian zgodnie z osobistymi potrzebami. Oto kompletny przykład:
Definiuje to metodę rozszerzenia dla
string
typu. Zauważ, że jedyną rzeczą, która naprawdę się liczy, jest argument funkcji z dodatkowym słowem kluczowymthis
, który powoduje, że odnosi się do obiektu, do którego jest podłączona metoda. Nazwa klasy nie ma znaczenia; klasa i metoda muszą zostać zadeklarowanestatic
.Oto jak korzystać z
string extension method
, zauważ, że odnosi się automatycznie doclass Strings
:Nigdy bym tego nie znalazł, ale działa świetnie, więc chciałem się tym podzielić. Baw się dobrze!
źródło
Oto najlepsze i najczęściej stosowane metody zapisu i odczytu plików:
Starym sposobem, którego nauczyłem się na studiach, było korzystanie z czytnika / pisarki strumieniowej, ale metody we / wy File są mniej niezręczne i wymagają mniejszej liczby wierszy kodu. Możesz wpisać „Plik”. w swoim IDE (upewnij się, że dołączasz instrukcję importu System.IO) i zobacz wszystkie dostępne metody. Poniżej znajdują się przykładowe metody odczytu / zapisu ciągów do / z plików tekstowych (.txt.) Za pomocą aplikacji Windows Forms.
Dołącz tekst do istniejącego pliku:
Uzyskaj nazwę pliku od użytkownika za pomocą eksploratora plików / otwórz okno dialogowe pliku (będzie to konieczne, aby wybrać istniejące pliki).
Pobierz tekst z istniejącego pliku:
źródło
Lub, jeśli naprawdę chodzi o linie:
System.IO.File zawiera również metodę statyczną WriteAllLines , dzięki czemu można wykonać:
źródło
Podczas czytania dobrze jest użyć kontrolki OpenFileDialog do przeglądania dowolnego pliku, który chcesz przeczytać. Znajdź kod poniżej:
Nie zapomnij dodać następującej
using
instrukcji, aby odczytać pliki:using System.IO;
Do pisania plików możesz użyć metody
File.WriteAllText
.źródło
źródło
Szukasz w
File
,StreamWriter
iStreamReader
klas.źródło
źródło