kinugasa.contents.text

## クラス TextIO<T>

- java.lang.Object
- - kinugasa.contents.text.TextIO<T>

- 型パラメータ:
    `T` - テキストファイルのある1行の内容を表すクラスを指定します。 たとえば、CSVファイルではString[]です。
  すべての実装されたインタフェース:
    java.io.Serializable, java.lang.Iterable<T>, Nameable
  直系の既知のサブクラス:
    TextReader, TextWriter, XMLReader

      public abstract class TextIO<T>
      extends java.lang.Object
      implements java.lang.Iterable<T>, Nameable, java.io.Serializable

  テキストファイルの入出力の共通機能を定義します.
  TextIOの名前は、ファイルからパスを除いたファイル名が使用されます。
  たとえば、hoge/piyo/fuga.txtならfuga.txtです。
  TextIOのデータを操作するメソッドは、thisインスタンスを戻すことによって 局所的な利便性を高めています。全てのTextIOの実装は、これらのメソッドを 適切にオーバーライドし、thisを戻す必要があります。
  関連項目:
    直列化された形式

- - ### フィールドのサマリー

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `protected java.util.ArrayList<T>` | `data` データの内容を表すリストです.
    `protected java.io.File` | `file` このテキストデータのファイルインスタンスです.

  - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `TextIO(java.io.File file)` ファイルを指定して、テキストファイルを構築します.
    `TextIO(java.lang.String filePath)` ファイル名を指定して、テキストファイルを構築します.

  - ### メソッドのサマリー

    All Methods Instance Methods Concrete Methods
    修飾子とタイプ | メソッドと説明
    --- | ---
    `TextIO<T>` | `add(java.util.Collection<? extends T> obj)` 要素をこのテキストファイルの末尾に追加します.
    `TextIO<T>` | `add(T... obj)` 要素をこのテキストファイルの末尾に追加します.
    `TextIO<T>` | `add(T obj)` 要素をこのテキストファイルの末尾に追加します.
    `TextIO<T>` | `add(TextIO<? extends T> other)` 他のTextIOのすべての要素を、このテキストファイルの末尾に追加します.
    `TextIO<T>` | `clear()` 全ての要素を破棄します.
    `java.util.ArrayList<T>` | `getData()` テキストファイルの内容に対応した、データを取得します.
    `java.io.File` | `getFile()` ファイルインスタンスを取得します.
    `T` | `getFirst()` データの最初の値を返します。
    `java.lang.String` | `getName()` このインスタンスの一意的な名前を取得します.
    `boolean` | `isEmpty()` データが1件も追加されていない場合に、trueを返します.
    `java.util.Iterator<T>` | `iterator()`
    `void` | `printAll(java.io.PrintStream stream)` 追加されているすべての要素のtoStringをストリームに発行します.
    `TextIO<T>` | `remove(java.util.Collection<? extends T> obj)` 要素をこのテキストファイルから削除します.
    `TextIO<T>` | `remove(T... obj)` 要素をこのテキストファイルから削除します.
    `TextIO<T>` | `remove(T obj)` 要素をこのテキストファイルから削除します.
    `TextIO<T>` | `remove(TextIO<? extends T> other)` 他のTextIOのすべての要素を、このテキストファイルから削除します.
    `int` | `size()` 現時点での行数を取得します.
    `java.lang.String` | `toString()`

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### インタフェースから継承されたメソッド java.lang.Iterable

      `forEach, spliterator`

- - ### フィールドの詳細

    - #### file

          protected final java.io.File file

      このテキストデータのファイルインスタンスです.

    - #### data

          protected final java.util.ArrayList<T> data

      データの内容を表すリストです. データのインデックスは、テキストデータの行に対応します。

  - ### コンストラクタの詳細

    - #### TextIO

          public TextIO(java.lang.String filePath)

      ファイル名を指定して、テキストファイルを構築します. 通常は、コンストラクタをコールしただけではデータの読み込みや ファイルの作成は行われません。
      パラメータ:
        `filePath` - ファイルパスを指定します。

    - #### TextIO

          public TextIO(java.io.File file)

      ファイルを指定して、テキストファイルを構築します. 通常は、コンストラクタをコールしただけではデータの読み込みや ファイルの作成は行われません。
      パラメータ:
        `file` - ファイルを指定します。

  - ### メソッドの詳細

    - #### getData

          public final java.util.ArrayList<T> getData()

      テキストファイルの内容に対応した、データを取得します.
      戻り値:
        ファイルの内容を返します。リストのインデックスが、行番号に対応しています。

    - #### getFirst

          public final T getFirst()

      データの最初の値を返します。
      戻り値:
        データの0番目の要素を返します。データが1つもない場合はnullを返します。

    - #### getFile

          public final java.io.File getFile()

      ファイルインスタンスを取得します.
      戻り値:
        ファイルインスタンスを返します。

    - #### add

          public TextIO<T> add(T obj)

      要素をこのテキストファイルの末尾に追加します. このメソッドは、TextIOのすべての実装でオーバーライドし、super.add()をコールする必要があります。
      パラメータ:
        `obj` - 追加するオブジェクトを指定します。
      戻り値:
        thisインスタンスを返します。

    - #### add

          public TextIO<T> add(T... obj)

      要素をこのテキストファイルの末尾に追加します. このメソッドは、TextIOのすべての実装でオーバーライドし、super.add()をコールする必要があります。
      パラメータ:
        `obj` - 追加するオブジェクトを指定します。
      戻り値:
        thisインスタンスを返します。

    - #### add

          public TextIO<T> add(java.util.Collection<? extends T> obj)

      要素をこのテキストファイルの末尾に追加します. このメソッドは、TextIOのすべての実装でオーバーライドし、super.add()をコールする必要があります。
      パラメータ:
        `obj` - 追加するオブジェクトを指定します。
      戻り値:
        thisインスタンスを返します。

    - #### add

          public TextIO<T> add(TextIO<? extends T> other)

      他のTextIOのすべての要素を、このテキストファイルの末尾に追加します. このメソッドは、読み込み用TextIOからロードしたデータを書き込み用TextIOに発行する場合に有用です。
      このメソッドは、TextIOのすべての実装でオーバーライドし、super.add()をコールする必要があります。
      パラメータ:
        `other` - 追加するオブジェクトが含まれたTextIOを指定します。
      戻り値:
        thisインスタンスを返します。

    - #### remove

          public TextIO<T> remove(T obj)

      要素をこのテキストファイルから削除します. このメソッドは、TextIOのすべての実装でオーバーライドし、super.remove()をコールする必要があります。
      パラメータ:
        `obj` - 削除するオブジェクトを指定します。
      戻り値:
        thisインスタンスを返します。

    - #### remove

          public TextIO<T> remove(T... obj)

      要素をこのテキストファイルから削除します. このメソッドは、TextIOのすべての実装でオーバーライドし、super.remove()をコールする必要があります。
      パラメータ:
        `obj` - 削除するオブジェクトを指定します。
      戻り値:
        thisインスタンスを返します。

    - #### remove

          public TextIO<T> remove(java.util.Collection<? extends T> obj)

      要素をこのテキストファイルから削除します. このメソッドは、TextIOのすべての実装でオーバーライドし、super.remove()をコールする必要があります。
      パラメータ:
        `obj` - 削除するオブジェクトを指定します。
      戻り値:
        thisインスタンスを返します。

    - #### remove

          public TextIO<T> remove(TextIO<? extends T> other)

      他のTextIOのすべての要素を、このテキストファイルから削除します. このメソッドは、読み込み用TextIOからロードしたデータを書き込み用TextIOに発行する場合に有用です。
      このメソッドは、TextIOのすべての実装でオーバーライドし、super.remove()をコールする必要があります。
      パラメータ:
        `other` - 削除するオブジェクトが含まれたTextIOを指定します。
      戻り値:
        thisインスタンスを返します。

    - #### clear

          public TextIO<T> clear()

      全ての要素を破棄します.
      戻り値:
        thisインスタンスを返します。

    - #### size

          public final int size()

      現時点での行数を取得します.
      戻り値:
        このテキストデータの行数を返します。dataの要素数です。

    - #### isEmpty

          public final boolean isEmpty()

      データが1件も追加されていない場合に、trueを返します.
      戻り値:
        dataのisEmptyを返します。

    - #### toString

          public java.lang.String toString()

      オーバーライド:
        `toString` クラス内 `java.lang.Object`

    - #### printAll

          public void printAll(java.io.PrintStream stream)

      追加されているすべての要素のtoStringをストリームに発行します. このメソッドはデバッグ用です。
      パラメータ:
        `stream` - 発行するストリームを指定します。

    - #### iterator

          public java.util.Iterator<T> iterator()

      定義:
        `iterator` インタフェース内 `java.lang.Iterable<T>`

    - #### getName

          public final java.lang.String getName()

      インタフェースからコピーされた説明: `Nameable`
      このインスタンスの一意的な名前を取得します. 名前はゲームの実行中変更されてはなりません。
      定義:
        `getName` インタフェース内 `Nameable`
      戻り値:
        このインスタンスを識別できる一意的な名前を返します。名前はユーザやプレイヤーが指定する可能性があるため 意味のある文字列を推奨します。