Elixir-file-io
Elixir-ファイルIO
ファイルIOは、プログラミング言語がファイルシステム上のファイルと対話できるようにするため、あらゆるプログラミング言語の不可欠な部分です。 この章では、パスとファイルの2つのモジュールについて説明します。
パスモジュール
Pathモジュールをさらに理解するために、次の例を考えてみましょう-
上記のプログラムが実行されると、次の結果が生成されます-
パスモジュールが提供する多くのメソッドがあります。 さまざまな方法については、http://elixir-lang.org/docs/stable/elixir/Pathl [こちら]をご覧ください。 これらのメソッドは、多くのファイル操作操作を実行している場合に頻繁に使用されます。
ファイルモジュール
ファイルモジュールには、IOデバイスとしてファイルを開くことができる関数が含まれています。 デフォルトでは、ファイルはバイナリモードで開かれるため、開発者はIOモジュールの特定の IO.binread および IO.binwrite 関数を使用する必要があります。 newfile というファイルを作成し、それにデータを書き込みましょう。
私たちが書いたばかりのファイルを開くと、コンテンツは次のように表示されます-
ファイルモジュールの使用方法を理解しましょう。
ファイルを開く
ファイルを開くには、次の2つの機能のいずれかを使用できます-
- File.open 関数は常にタプルを返します。 ファイルが正常に開かれた場合、タプルの最初の値を*:ok として返し、2番目の値はio_device型のリテラルです。 エラーが発生した場合、最初の値が:error *で2番目の値が理由としてタプルを返します。
- 一方、* File.open!()関数は、ファイルが正常に開かれた場合は *io_device を返し、それ以外の場合はエラーを発生させます。 注:これは、これから説明するすべてのファイルモジュール関数で使用されるパターンです。
このファイルを開くモードを指定することもできます。 ファイルを読み取り専用で、utf-8エンコーディングモードで開くには、次のコードを使用します-
ファイルへの書き込み
ファイルに書き込む方法は2つあります。 Fileモジュールのwrite関数を使用した最初のものを見てみましょう。
ただし、同じファイルに複数の書き込みを行う場合は、これを使用しないでください。 この関数が呼び出されるたびに、ファイル記述子が開かれ、ファイルに書き込むための新しいプロセスが生成されます。 ループで複数の書き込みを行う場合は、 File.open を介してファイルを開き、IOモジュールのメソッドを使用して書き込みます。 同じことを理解するための例を考えてみましょう-
ファイルからの読み取り
ファイルから読み取る方法は2つあります。 Fileモジュールのread関数を使用して、最初のものを見てみましょう。
このコードを実行すると、最初の要素が*:ok *で、2番目の要素がnewfileの内容であるタプルを取得する必要があります
- File.read!*関数を使用して、返されたファイルの内容を取得することもできます。
開いているファイルを閉じる
File.open関数を使用してファイルを開くときは、使用後、 File.close 関数を使用してファイルを閉じる必要があります-