「Java」IOUtilsクラスで入力ストリーム(InputStreamReader)を文字列に変換

書式
1.java.lang.Class のメソッドの使用
クラス名.class.getClassLoader().getResourceAsStream(ファイル名)
getResourceAsStream() は、入出力例外がキャッチされて null の InputStream を返されることを除いて、getResource().openStream() を呼び出すことと同一です。

2.InputStreamReader(InputStream in, Charset cs)
与えられた文字セットを使うInputStreamReaderを作成します。

3.IOUtils.toString(final Reader input)
入力ストリームを文字列に変換

jarファイル
commons-io-2.6.jar

使用例

package com.arkgame.info;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;

import org.apache.commons.io.IOUtils;

public class IOUtilsDemo {

      public static void main(String[] args) {

            String fileName = "test.csv";
            String res = getInfo(fileName);

            System.out.println(res);
      }

      public static String getInfo(String fileName) {

            // getResourceAsStream() を Class と ClassLoader に追加する
            try (InputStream is =
                        IOUtilsDemo.class.getClassLoader().getResourceAsStream(fileName);
                        // InputStreamReaderはバイトを読み込み、指定charsetを設定
                        InputStreamReader isr =
                                    new InputStreamReader(is, Charset.forName("UTF-8"));) {

                  // InputStreamReaderを文字列に変換
                  return IOUtils.toString(isr);

            } catch (IOException e) {
                  return "";
            }
      }

}

結果
山田次郎,32,東京,大学

Java

Posted by arkgame