Clojure-file-io
Clojure-ファイルI/O
Clojureは、I/Oを操作するときに多くのヘルパーメソッドを提供します。 ファイルに次の機能を提供する簡単なクラスを提供します。
- ファイルを読む
- ファイルへの書き込み
- ファイルがファイルかディレクトリかを確認する
Clojureが提供しているファイル操作のいくつかを見てみましょう。
ファイルの内容を文字列全体として読み取る
ファイルの内容全体を文字列として取得する場合は、 clojure.core.slurp メソッドを使用できます。 slurpコマンドは、ファイルのリーダーを開き、その内容をすべて読み取り、文字列を返します。
以下は、これを行う方法の例です。
ファイルに次の行が含まれている場合、それらは次のように印刷されます-
ファイルの内容を一度に1行ずつ読み取る
ファイルの内容全体を一度に1行ずつ文字列として取得する場合は、 clojure.java.io/reader メソッドを使用できます。 clojure.java.io/readerクラスは、ファイルの各行を読み取るために使用されるリーダーバッファーを作成します。
以下は、これを行う方法を示す例です。
ファイルに次の行が含まれている場合、それらは次のように印刷されます-
出力は次のように表示されます-
「宛先」ファイルの書き込み
「to」ファイルを書きたい場合は、 clojure.core.spit コマンドを使用して、文字列全体をファイルに吐き出すことができます。 spitコマンドは、slurpメソッドの反対です。 このメソッドは、ファイルをライターとして開き、コンテンツを書き込んでからファイルを閉じます。
以下はその一例です。
上記の例では、Example.txtファイルの内容が表示されている場合、「これは文字列です」の内容が表示されます。
「to」ファイルを1行ずつ書き込む
「to」ファイルを一度に1行ずつ書き込みたい場合は、 clojure.java.io.writer クラスを使用できます。 clojure.java.io.writerクラスは、データのバイトがストリームに送られ、その後ファイルに送られるライターストリームを作成するために使用されます。
以下は、spitコマンドの使用方法を示す例です。
上記のコードを実行すると、Example.txtファイルに「hello world」という行が表示されます。 append:trueオプションは、データをファイルに追加することです。 このオプションが指定されていない場合、ファイルにデータが書き込まれるたびにファイルが上書きされます。
ファイルが存在するかどうかを確認する
ファイルが存在するかどうかを確認するには、 clojure.java.io.file クラスを使用してファイルの存在を確認できます。 以下は、これを達成する方法を示す例です。
ファイルExample.txtが存在する場合、出力はtrueになります。
コンソールからの読み取り
コンソールからデータを読み取るには、 read-line ステートメントを使用できます。 以下は、これの使用方法を示す例です。
REPLウィンドウで(読み取り行)コマンドを入力すると、コンソールウィンドウに入力を行う機会があります。
上記のコードは次の出力を生成します。