Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで文字配列をリーダー(Reader)に変換する方法を徹底解説

Javaでは、CharArrayReaderクラスを使用することで、文字配列をリーダー(Reader)として扱うことができます。CharArrayReaderはReaderクラスのサブクラスであり、文字入力ストリームとして利用可能な文字バッファを実装しています。

このクラスを使うと、メモリ上の文字配列から、開始位置(オフセット)を指定して全てまたは一部の文字を読み取ることができます。ファイルやネットワーク経由ではなく、プログラム内のデータをストリームとして処理したい場合に非常に便利です。

CharArrayReaderの主なメソッド

  • close():ストリームを閉じ、関連するリソースを解放します
  • mark():現在の読み取り位置にマークを設定します
  • read():文字配列から1文字または複数の文字を読み取ります
  • skip():指定した数の文字を読み飛ばします
  • reset():マークされた位置まで読み取り位置を戻します

構文

public class CharArrayReader extends Reader

また、コンストラクタは以下の2種類が用意されています。

  • CharArrayReader(char[] buf):指定した文字配列全体を対象とします
  • CharArrayReader(char[] buf, int offset, int length):オフセット位置から指定した長さ分だけを対象とします

使用例

以下の例では、文字配列をCharArrayReaderに変換し、さらにBufferedReaderでラップして行単位で読み込んでいます。

import java.io.*;

public class CharArrayReaderTest {
   public static void main(String args[]) throws Exception {
      // 文字配列を作成
      char array[] = {'T', 'u', 't', 'o', 'r', 'i', 'a', 'l', 's', ' ', 'P', 'o', 'i', 'n', 't', '!'};

      // 文字配列をリーダーに変換
      CharArrayReader car = new CharArrayReader(array);

      // BufferedReaderでラップして効率的に読み込み
      BufferedReader br = new BufferedReader(car);
      String line;
      while ((line = br.readLine()) != null) {
         System.out.println(line);
      }
   }
}

実行結果

Tutorials Point!

ポイントまとめ

このように、new CharArrayReader(文字配列)とするだけで、文字配列を簡単にReader型のストリームへ変換できます。BufferedReaderと組み合わせれば、readLine()メソッドによる行単位の読み込みも可能になり、テキストデータの加工やテストなどで柔軟に活用できます。

  1. PythonのタプルをCの配列に変換する方法と注意点を解説

    PythonのタプルをCの配列に変換できるのか? 結論から述べると、タプルが持つ「イミュータブル(変更不可)」という性質を保ったまま、Cの配列へ変換することはできません。できるのは、C側で通常の配列を定義し、そこへタプルの要素をコピーすることだけです。 タプルとCの配列は似ているようで違う Pythonのタプルは、本質的に要素を格納した不変(immutable)の配列です。データ構造としてはC言語の配列に近い概念ですが、両者には決定的な違いがあります。 C言語ではメモリを直接操作してプログラムを組みますが、Cには「イミュータブルな配列」に相当する構文や標準機能が存在しません。そのため、タプル

  2. JavaでList(リスト)を配列に変換する方法|toArray()とArrays.asList()の使い方

    Javaの開発において、List(リスト)と配列(Array)の相互変換は非常によく使われる基本的な操作です。 Listを配列に変換する最も簡単かつ推奨される方法は、.toArray()メソッドを使うことです。逆に、配列をListに戻したい場合は、Arrays.asList()メソッドを使用します。 以下では、文字列(String)のListや整数(Integer)のListを、それぞれ対応する配列に変換する具体例を紹介します。 String型のListを配列に変換する import java.util.ArrayList; import java.util.List; public cl