net.argius.stu.io
クラス CSVFile

java.lang.Object
  拡張net.argius.stu.io.CSVFile

public class CSVFile
extends Object

CSVファイルの読み込み、書き込みを行うクラスです。 読み込みモードと書き込みモードで同様のインターフェイスをもっています。 モードによって使用できない操作は、エラーとなります。 読み書き混在モードやランダムアクセスの機能はありません。

 
   使用例
        CSVFile csv = new CSVFile("/tmp/aaa.csv");
        csv.setWriteMode();
        csv.clear(); // 既にデータがあれば、クリアする
        csv.open();
        csv.addColumn("PRODUCT");
        csv.addColumn("PRICE");
        csv.nextRow();
        csv.addColumn("WATCH");
        csv.addColumn("5000");
        csv.nextRow();
        csv.addColumn("PURSE");
        csv.addColumn("30000");
        csv.nextRow();
        csv.close();

        csv.setReadMode();
        csv.open();
        out.println(csv.nextRow()); // [PRODUCT, PRICE]
        out.println(csv.nextRow()); // [WATCH, 5000]
        out.println(csv.nextRow()); // [PURSE, 30000]
        out.println(csv.nextRow()); // null
        csv.close();
 


コンストラクタの概要
CSVFile()
          CSVファイルをテンポラリファイルとして生成します。
CSVFile(File file)
          CSVファイルを指定されたファイルで生成します。
CSVFile(String filepath)
          CSVファイルを指定されたパスで生成します。
 
メソッドの概要
 void addColumn(String value)
          現在の行の最後の列に値を追加します。
 void addColumn(String value, CSVOutputForm form)
          現在の行の最後の列に値を追加します。
 void clear()
          ファイルの内容をクリアします。
 void close()
          ファイルをクローズします。
 void copy(String path)
          ファイルをコピーします。
 void copy(String path, boolean overwrite)
          ファイルをコピーします。
 String getPath()
          このファイルのパス文字列を返します。
 void insertColumn(int index, String value)
          現在の行の任意の列に値を挿入します。
 void insertColumn(int index, String value, CSVOutputForm form)
          現在の行の任意の列に値を挿入します。
 void move(String path)
          ファイルを移動します。
 void move(String path, boolean overwrite)
          ファイルを移動します。
 List nextRow()
          次の行に移動します。
 void open()
          ファイルをオープンします。
 void setOutputForm(CSVOutputForm form)
          値を追加する時に使用する出力形式を設定します。
 void setReadMode()
          読み込みモードに設定します。
 void setWriteMode()
          書き込みモードに設定します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

CSVFile

public CSVFile()
        throws IOException
CSVファイルをテンポラリファイルとして生成します。

例外:
IOException - ファイル作成エラー

CSVFile

public CSVFile(String filepath)
        throws IOException
CSVファイルを指定されたパスで生成します。

パラメータ:
filepath - CSVファイルのパス
例外:
IOException - ファイルがアクセス不可の場合

CSVFile

public CSVFile(File file)
        throws IOException
CSVファイルを指定されたファイルで生成します。

パラメータ:
file - CSVファイル
例外:
IOException - ファイルがアクセス不可の場合
メソッドの詳細

setReadMode

public void setReadMode()
                 throws IOException
読み込みモードに設定します。

例外:
IOException - ファイルがアクセス不可の場合

setWriteMode

public void setWriteMode()
                  throws IOException
書き込みモードに設定します。

例外:
IOException - ファイルがアクセス不可の場合

open

public void open()
          throws IOException
ファイルをオープンします。

例外:
IOException - ファイルオープンエラー

clear

public void clear()
           throws IOException
ファイルの内容をクリアします。 書き込みモード以外の時は常にエラーとなります。

例外:
IOException - ファイルオープンエラー

close

public void close()
           throws IOException
ファイルをクローズします。

例外:
IOException - ファイルクローズエラー

getPath

public String getPath()
このファイルのパス文字列を返します。

戻り値:
パス文字列

setOutputForm

public void setOutputForm(CSVOutputForm form)
値を追加する時に使用する出力形式を設定します。 デフォルトは、CSVOutputForm.RAWが設定されています。 個別指定された場合は、個別指定が優先されます。

パラメータ:
form - CSV出力形式
関連項目:
CSVOutputForm

addColumn

public void addColumn(String value)
現在の行の最後の列に値を追加します。 読み込みモードの時は、エラーにはなりませんが、意味の無いオペレーションです。

パラメータ:
value - 追加する値

addColumn

public void addColumn(String value,
                      CSVOutputForm form)
現在の行の最後の列に値を追加します。 指定した出力形式でフォーマットされた値が書き込まれます。 読み込みモードの時は、エラーにはなりませんが、意味の無いオペレーションです。

パラメータ:
value - 追加する値
form - CSV出力形式
関連項目:
CSVOutputForm

insertColumn

public void insertColumn(int index,
                         String value)
現在の行の任意の列に値を挿入します。 読み込みモードの時は、エラーにはなりませんが、意味の無いオペレーションです。

パラメータ:
index - 挿入位置
value - 挿入する値

insertColumn

public void insertColumn(int index,
                         String value,
                         CSVOutputForm form)
現在の行の任意の列に値を挿入します。 指定した出力形式でフォーマットされた値が書き込まれます。 読み込みモードの時は、エラーにはなりませんが、意味の無いオペレーションです。

パラメータ:
index - 挿入位置
value - 挿入する値
form - CSV出力形式
関連項目:
CSVOutputForm

nextRow

public List nextRow()
             throws IOException
次の行に移動します。

読み込みモードの時は、次の行を読み込みます。 エスケープ("a,b")や式(="000")は値だけが取り出されます。
書き込みモードの時は、現在の行を書き込み、改行します。

戻り値:
読み込みモードの時は、次の行のリスト(最終行の時はnull
書き込みモードの時は、空のリスト
例外:
IOException - ファイルアクセスエラー

move

public void move(String path)
          throws IOException
ファイルを移動します。 ストリームがオープン済みの場合は、一旦クローズされ、 移動後に自動的にオープンされます。
パスにディレクトリを指定すると、ディレクトリ間移動となります。
パスにファイル名のみを指定すると、ディレクトリ内でのファイル名変更となります。
ファイルが存在する場合は、エラーとなります。

パラメータ:
path - 移動先を表すパス
例外:
IOException - ファイルアクセスエラー

move

public void move(String path,
                 boolean overwrite)
          throws IOException
ファイルを移動します。 ストリームがオープン済みの場合は、一旦クローズされ、 移動後に自動的にオープンされます。
パスにディレクトリを指定すると、ディレクトリ間移動となります。
パスにファイル名のみを指定すると、ディレクトリ内でのファイル名変更となります。

パラメータ:
path - 移動先を表すパス
overwrite - 指定したパスが既に存在するときに上書きする
例外:
IOException - ファイルアクセスエラー

copy

public void copy(String path)
          throws IOException
ファイルをコピーします。 ストリームがオープン済みの場合は、一旦クローズされ、 コピー後に自動的にオープンされます。
パスにディレクトリを指定すると、ディレクトリ間コピーとなります。
パスにファイル名のみを指定すると、ディレクトリ内でのコピーとなります。
ファイルが存在する場合は、エラーとなります。

パラメータ:
path - コピー先を表すパス
例外:
IOException - ファイルアクセスエラー

copy

public void copy(String path,
                 boolean overwrite)
          throws IOException
ファイルをコピーします。 ストリームがオープン済みの場合は、一旦クローズされ、 コピー後に自動的にオープンされます。
パスにディレクトリを指定すると、ディレクトリ間コピーとなります。
パスにファイル名のみを指定すると、ディレクトリ内でのコピーとなります。

パラメータ:
path - コピー先を表すパス
overwrite - 指定したパスが既に存在するときに上書きする
例外:
IOException - ファイルアクセスエラー