カテゴリー
Python

ファイルを読み書きしよう

この章ではファイルを読み書きする方法について説明します。
Pythonではプログラムでファイルを作成したり、ファイルの読み書きをすることが出来ます。9 初めにファイルの中身を読み込む方法について説明します。
pyファイルの他に「test.txt」を用意します。
ファイル名は自由に付けていただいて結構です。
では例をみてみましょう。9 結果は次の通りです。9 ファイルを開くにはopen関数が必要です。9 「モード」にはファイルをどのような状態で開くのかを指定します。
例えば「r」ですと、読み込み専用で開きます。
例では「test.txt」の中身を読み込みたいので、モードは「r」にしています。
モードは他にも以下の種類があります。
99999
次にファイルの内容の読み込み方法について説明します。
ファイルの内容を読み込むためのメソッドは3種類あります。
99例ではreadメソッドを使っていますが、このメソッドはファイルのすべての内容を読み込むので、9で読み込んだ内容を変数dに入れて、9で出力しますと「test.txt」の内容が出力されます。
そして、ファイルを開いたら、閉じなくてはいけないので、close関数で閉じます。9
次はreadlinesメソッドを使って、ファイルを読み込む方法について説明します。9 readlinesメソッドはファイルの内容すべてをリストとして返すので、9で出力すると9になります。
ファイルの行の終端には改行文字が付いているので、for文で出力する時には以下のように改行されて出力されます。9 この改行文字を取り除きたいのであればstripメソッドを使用します。
このstripメソッドは文字列の前や後の改行文字や空白、タブなどを取り除いてくれます。9 先ほどの例をstripメソッドを使って書き直すと以下の通りです。9 結果は以下の通り、改行文字が取れていることが分かります。9
次はreadlineメソッドを使ってファイルの内容を改行文字までの1行を読み込み、文字列を出力します。9 readlineメソッドはファイルの内容を改行文字までの1行を読み込みます。9 結果は次の通りです。9
次はファイルへ書き込む方法について説明します。9 指定ファイルに文字列を書き込むにはモードを9で指定します。9 ファイルに書き込むにはwriteメソッドの引数に文字列を指定してください。
ファイルの中で改行したい場合は9のように改行文字を使用します。
この例ではモードに「w」を指定しているので、ファイルの中身をカラにして書き込みます。
結果は以下のように「test.txt」が書き替えられます。9
もう一つファイルに書き込むメソッドがありますので、次の例で説明します。9 ファイルに書き込むにはwritelinesメソッドの引数に文字列、リスト、タプルなどを指定してください。
writeメソッドの引数にリスト、タプルを指定するとエラーになります。9 結果は以下の通り「test.txt」が書き替えられます。9

カテゴリー
Ruby

IOクラスについて知ろう

この章ではIO クラスとファイルの入出力について説明します。
ファイルの入出力の基本はファイルを開いて、ファイルに書き込んだり、ファイルから読み込んだりして、最後にファイルを閉じます。
ファイルの入出力にはIO クラスのオブジェクト(IO オブジェクト)を使用します。
ではIO クラスを使用して、ファイルを操作する方法について説明します。9 ファイルを開いたり閉じたりする方法は2つあります。99 構文の中のアクセスモードとは「ファイルを読み込み用で開くのか」、「書き込み用で開くのか」、「読み書き両方で開くのか」を文字列で指定したものです。99999 9「ファイル操作の手順の2」のファイルに書き込んだり、ファイルから読み込んだりするには次の表のメソッドを使用します。
以下のメソッドを使って、入力したり、出力したりします。9999
では次の例で「test.dat」からデータを読み込んでみましょう。99 初めにファイルを開きますが、この例では先ほどの基本構文 2でファイルを開いています。
アクセスモードは読み込み専用の9を使用しています。
「オブジェクト.gets 」と言う形式でファイルからデータを読み込むことができます。
getsメソッドはファイルの中の1行分を読み込むことが出来ますので、「abcde」だけを読み込み、ファイルの終わり(EOF)になるとnilを返します。
最後に9という形式でファイルを閉じます。
基本構文2でファイルを開いた場合にはcloseメソッドは省略できます。
先ほどの例では1行しか取り出さないので、すべての要素を取り出したい場合はwhileを使用します。
次の例のようにwhileを使うと「abcde」「efgh」のすべてが取り出せます。
「a.gets」で取り出されたデータがbに入り、それをprintで出力しています。9
次の例をみてみましょう。99 readlineメソッドもgetsと同じでファイルの中の1行分だけ読み込むことが出来ます。
基本構文は9です。
次の例をみてみましょう。99 9と言う形式で、ファイルのすべての行を配列(この例ではb)に格納してくれます。
それを eachメソッド で繰り返し取り出しています。
結果は以下の通りです。9
次の例をみてみましょう。
9
「IOオブジェクト.getc 」という形式でファイルから1文字ずつ読み込みます。
このメソッドはファイルの終わり(EOF)になるとnilを返します。9
次の例をみてみましょう。9 基本構文は9です。
ファイルの初めから終わりまでを読み込んで出力します。
ファイルの終端に達するとnil を返します。9
次は9という構文でサイズを入力し、そのサイズ分だけファイルからデータを取り出します。9 この例では2バイト分だけ読み込んでいるので、結果は「ab」です。

次の例をみてみましょう。99 と言う基本構文でファイルの中身をすべて読み込むことが出来ます。9
次はファイルに書き込むメソッドについて説明します。
では例をみてみましょう。9 =>9と言う形式でファイルに改行を入れて書き込むことが出来ます。
これでt.datに「abcdef」「aiueo」が改行を入れて書き込まれます。
次の例をみてみましょう。9
9と言う形式でファイルに改行を入れないで書き込むことが出来ます。
結果はte.datに「abcdefaiueo」のように改行を入れないで書き込まれました。
次の例をみてみましょう。9 9と言う形式でファイルに改行を入れないで書き込むことが出来ます。
結果はt.datに「abcdefaiueo」のように改行を入れないで書き込まれました。
writeメソッドを使って、改行を入れて書き込みたい場合には以下の通り、9を入れます。9

次の例をみてみましょう。9 9と言う形式でファイルに書き込むことが出来ます。
結果はte.datに「abcdefaiueo」のように改行を入れないで書き込まれました。
次はファイルポインタについて説明します。
ファイルのデータを読み書きするには「ここまで読んだから次はここから読む」もしくは「ここまで書いたから次はここから書く」のように位置を覚えておかなくてはいけませんが、プログラマ自身が覚えている必要はなく、ファイルポインタと言う位置情報にこのデータが記録されています。
次の例をみてみましょう。9 「IOオブジェクト.pos」と言う形式で、現在のファイル位置を得ることが出来ます。
2バイト読み込んだので、現在のファイルの位置は2の箇所にあります。
例の実行結果は「ab」と「2」を出力します。
またposは現在の位置を知るだけでは無くて、任意の位置に移動することが出来ますので次の例で説明します。99 移動したい場合は9と記述します。
「i.pos=5」は5バイトだけ移動します。
5バイトで出力すると「fgh」を出力します。
「i.pos=0」は先頭まで移動します。先頭まで移動したので「abcdefgh」を出力します。
次はファイルポインタを移動するseekメソッドについて説明します
では例をみてみましょう。99 9で、ファイルポインタを自由に移動させることができます。
第 2引数のwhenceには以下の3種類から選択して、ファイルポインタの動きを決めることが出来ます。9 では例の説明をします。
「i.read(2)」で2のサイズだけ動いていて、その後に9でさらに5のサイズだけ移動しているので9で現在の位置を見ると7になります。
7進んだ位置で出力すると「h」を出力します。
9のように9に変更したとしますと、これは絶対位置なので9で現在の位置を見ると5になります。9
次はrewindメソッドについて説明します。
rewindメソッドはファイルポインタを先頭に戻します。
では例をみてみましょう。999と言う形式でファイルポインタを先頭に戻します。
puts i.posで出力すると0が出力されます。9

カテゴリー
Java

ファイルの入出力について知ろう

この章ではファイルの入出力について学びます。
以下の例は「java.txt」のすべての内容を取り出しています。111 1コンパイルをした後に以下のようにコマンドプロンプトにファイル名を入力して、エンターキーを押すと「java.txt」の内容が出力されます。11
ではファイルからデータを取り出すプログラムの説明をします。1 => FileReaderクラスを使いますので、この1をインポートしてください。

1

次の箇所の説明をします。1 =>入力値が適切かどうかをチェックしています。
「args.length != 1」は配列の数が1でなければ「間違い」が出力されます。
つまり以下のように1つ以上入力があると「間違い」が出力されるという意味です。1
次は以下の箇所の説明をします。
System.exit(0);
=> System.exit()はプログラムが正常に終了することを意味します。
次は以下の箇所の説明をします。1 => FileReaderクラスはファイルからデータを読み込むためのクラスです。
FileReaderクラスはBufferedReaderクラスの引数に入っていますが、BufferedReaderクラスの引数に入れることにより、ファイルの読み込みが早くなります。

次は以下の箇所の説明をします。1 => readLine()はファイルからデータを読み込むためのメソッドです。
BufferedReaderクラスにはどのようなメソッドがあるかはJavaTM Platform Standard Edition 6の中でBufferedReaderを検索しますと以下のメソッドが使えることが分かります。1 つまり、1の箇所はreadLineメソッドで読み込んだものがlnに入って、それとnullを比べています。
readLineメソッドはファイルを最後まで読み終えたら,null という値を返します。
nullは値がない状態を意味します。
ですのでファイルの終端に達していない限り、whileですべてのデータを取り出すことが出来ます。

次は以下の箇所の説明をします。
rd.close();
=>最後に1という形式で閉じます。

次は以下の箇所の説明をします。1 =>JavaTM Platform Standard Edition 6でFileReaderを検索していただくと以下の内容が表示されるのですが、1という箇所を見てください。
これはこのFileReaderクラスがFileNotFoundExceptionという例外を発生させる可能性があることを意味しますので、必ず1を入れてください。1

次はファイルからデータを読み込むメソッドをreadLineメソッドからreadメソッドに変更して出力します。111 では説明を始めます。1 => FileReaderクラスのオブジェクトを作成します。
FileReaderクラスの引数はファイル名になります。

次は以下の箇所の説明をします。1 =>readメソッドはファイルの先頭から1文字を読み込みます。
この例ではwhileで回しているのでファイルの先頭から順番に1文字ずつファイルを読み込みます。
そして、ファイルの終端に達したならば「-1」を返します。
readメソッドはファイルの初めから1文字を読み込みますと言いましたがreadメソッドの戻り値はint型の整数になります。
この整数は文字コードを表す整数ですので、これを1でキャストして「文字」に変換します。
char()」でキャストしないと以下のように整数の連続になり文字にはなりません。1 「char()」でキャストすると以下のように文字になって出力されます。1 次は指定したファイルへの書き込みについて説明します。11 以下の通り、書き込みたいファイルを指定してください。1 ファイルに書き込みをするためにはFileWriterクラスを使用します。
FileWriterクラスの引数はファイル名になります。

1 =>初めに1をインポートします。

1 =>ここではwriteメソッドでファイルへの書き込みを行います。

filew.close();
=>closeメソッドでファイルを閉じます。
FileWriterクラスの例外はIOExceptionですので、これをcatchの引数に入れてください。

次はファイルの削除方法について説明します。1 では説明を始めます。
Fileクラスはファイルやディレクトリの作成などに関するクラスです。1 ファイルを削除するにはFileクラスのdeleteメソッドを使うので引数に削除したいファイルを指定します。
Fileクラスのメソッドはたくさんありますが、以下にその一部を載せます。1 初めにコンパイルしましたら、以下のようにファイル名を入力してください。
入力したファイル名は1に入ります。
その後,if文で1を判定するのですが、deleteメソッドは削除できたらtrueを、削除できなかったらfalseを返します。1

カテゴリー
Perl

Perlプログラムでファイルを扱う方法を知ろう

この章ではPerlプログラムの中でファイルを扱う方法を学習します。
Perlプログラムの中でファイルを読み込んだり、書き込んだり、削除したりすることが出来ます。
プログラムでファイルを操作するには初めに、対象のファイルを開くことが必要です。
そして、その開いたファイルをプログラム上に表示させたり、プログラムの中のデータをファイルに書き込んだりする操作を加えて、
最後にその開いているファイルを閉じると言う過程をたどります。
1ではファイルの開き方から説明します。
1ファイルを開くにはopen関数を使います。ファイルハンドルとは今どのファイルを実行しているのかを区別するための名前のことを言います。
つまり、ファイルを操作するためのIDみたいなものです。
ファイルハンドル名を付けてからはこのファイルハンドル名で実行するための指示を出していきます。
ファイルハンドルは大文字で付けるのが慣習になっています。
ファイルを開いたとは閉じなくてはいけませんが、それにはclose関数を使います。
close関数の引数にはファイルハンドルを入れます。1 ではファイルにデータを書き込む例を見てみましょう。11 では説明を始めます。111 モードは「>」だけではないので、ファイルを開くときにはどのモードで開くのかを以下を参考に指定してください。111 次にflock関数について説明します。1 =>flock関数はファイルをロックする関数です。
ファイルに何かを記録するときに、複数の人が同時に同じファイルに書き込みを行うとファイルが壊れる可能性があるので、ファイルに書き込みを行う前にファイルをロックして、書き込んでいる間は他の人がファイルに書き込んだり読み込んだりを行えないようにすることが必要になります。
そのような時に使うのがflock関数です。ロックの種類は以下の通りですが、この例では書き込みを行っているので読み書き両方を禁止する2を指定してください。
ファイルロックは読み込み専用でファイルを開いている時にはflock関数は使う必要はありません。
つまりロックはしなくてもいいです。1 次にファイルに書き込む方法について説明します。1 ファイルに書き込みには以下の構文の通りprintを使います。
printの引数にはファイルハンドルと書き込む内容を書きます。
1最後にflock関数をノンブロックモードでファイルロックを解除して、ファイルを閉じます。つまり、ロック解除してから、close関数でファイルを閉じます。1 結果は以下のようにファイルに書き込まれます。1 次は書き込んだ内容を画面に出力します。1では解説をしていきます。1
=>読込み用で開きますので、「<」を使用します。1 =>ここではファイルの内容を読み込みます。
ファイルの内容を読み込むには以下の基本構文を使います。1 この例では「<OUT>」です。
「<ファイルハンドル>」はファイルから1行ずつ読み込みを行います。
読み込んだ1行の末尾には改行記号が付いています。
ファイルの内容を出力する方法は3つあります。11 1111そして、すべての内容を取り出したら、ファイルを閉じます。
11 1ファイルを削除するには、unlink関数を使います。
戻り値には、削除したファイルの個数が返ってきます。
複数のファイルを削除するには以下の構文で書きます。
1では例をみてみましょう。
1戻り値には、削除したファイルの個数が返ってきますので、例えばファイルが存在しないなどの理由で0が返ってきたらFALSEになり、以下のprint文が出力されます。
1ファイル名を変更したい場合はrename関数を使います。1 成功時には1、失敗時には 0を返します。
では例をみてみましょう。11