W tym krótkim samouczku zobaczymy, jak czytać i zapisywać pliki przy użyciu języka programowania Ruby. Aby przećwiczyć, podamy kilka prostych przykładów. Jeśli jesteś zainteresowany zobaczeniem przykładów tego, co zostanie dzisiaj wyjaśnione lub innych rzeczy związanych z Rubym, możesz odwiedzić jego dokumentację.
Pierwszy przykład
W takim przypadku wykonywana jest kopiarka, która odczytuje kod programu (files.rb) i kopiuje go do innego pliku (copiaFicheros.rb).
File.open ('files.rb', 'r') do | plik1 | File.open ('copiaFicheros.rb', 'w') do | plik2 | while line = file1.gets file2.puts (line) end file2.puts ("# end of copy") end endPierwsza linia otwiera plik, z którego jest odczytywany (r - czytaj) i będzie miał nazwę plik1, w drugim otwieramy plik, w którym (w - napisz), pamiętaj, że wszystko w pliku copiaFicheros.rb zostanie usunięte, jeśli chcesz, abym pisał po tekście, który ma, zmień w za pomocą (a - dołącz). Mamy pętlę, która odczyta wiersz z pliku1 i zapisze go do pliku2, gdy nie ma już więcej do przeczytania, do pliku „kopiuj” wypisywana jest linia.
NotatkaJeśli chcesz otworzyć plik do odczytu i zapisu, użyj r +.
Drugi przykład
W tym przykładzie pokażemy pliki, które znajdziemy z katalogu, w którym wykonujemy kod, dlatego zobaczysz Znajdź.znajdź ('./'), który wykonuje wyszukiwanie w dół od katalogu, który otrzymuje jako parametr, jeśli chcesz inny katalog, od którego chcesz zacząć, zastąp ./.
wymagają 'find' Find.find ('./') do | f | if File.file?(f) to umieszcza f end endW pierwszym kroku importujemy find, którego potrzebujemy. Drugi wiersz kodu, który widzisz, to ten wyjaśniony powyżej. W tym kodzie interesuje nas tylko pokazywanie plików, a nie katalogów, więc w trzecim wierszu sprawdzamy, czy jest to plik, a jeśli tak, malujemy go w czwartym. Oto wyjście z uruchomienia kodu:
Jakie inne rodzaje czytania / pisania możemy zrobić, a nie są widoczne w tym samouczku:
- Możemy użyć losowego dostępu z metodą seek klasy IO.
- Możemy zapisywać i wczytywać obiekty (marshalling).