SpringFrameworkにて外部ファイルを読み込む

利用環境

  • Spring boot 2.0.0

Google検索で外部ファイルの読み方を調べたところ、Propertiesの読み方が多く

事前にCSVやその他ファイルを読み込む方法が無かったので記事にしました。

 

ファイルの設置個所

今回は src/main/resources に以下にファイルを事前に置いておきます。

方法

ResourceLoaderを使用します。

下記をController内にて使用してください。

@Autowired
protected ResourceLoader resourceLoader;

次にresourceLoaderからファイルを読み込みます。

この時に”classpath:”+file名をしてあげてください。

resourceLoader.getResource("classpath:" + "item_dic.csv")

getResourceした際にResourceが返ってくるので、これを操作することでファイルを取得することが出来ます。

ResourceのAPIはこちらのドキュメントで確認できます。

getFile()やgetInputStream()がありますので、後は適宜操作してあげて下さい。

Barcode Generatorリリース

Barcode Generatorをリリースしました。

https://barcode.kagamikarasu.net/

使い方

オプションは適宜設定してください。

  • CSVの場合

CSVファイルをアップロードし、変換したいカラム列番号を指定します。

3列目のデータを変換したい場合、3と数値を入力してください。

その後、生成ボタンを押すことでzipファイルのダウンロードが始まります。

  • フォーム入力の場合

入力エリアに数値(EANの場合)ないし文字列(QRCode)を入力します。

その後、生成ボタンを押すことで zipファイルのダウンロードが始まります。

エラーなど

  • Invalid dataと表示された場合
  1. 桁数があっていない
  2. チェックデジットが間違っている

対応コード

  • EAN(JAN)13
  • QRCode

ISBNコード(EAN13/JAN)をJavaで画像出力する

今回はJavaに文字列を引き渡しISBNコードを画像出力します。

早速、各種バーコードを取り扱うZXingライブラリを利用します。

// https://mvnrepository.com/artifact/com.google.zxing/core
compile group: 'com.google.zxing', name: 'core', version: '3.3.2'
// https://mvnrepository.com/artifact/com.google.zxing/javase
compile group: 'com.google.zxing', name: 'javase', version: '3.3.2'

下記がEAN13/JANを出力するコード例です。

makeEAN13に12桁の文字列を渡す事で、プロジェクト内に画像を出力してくれます。

13桁でも大丈夫ですが、最終桁のチェックサムが間違っているとエラーを起こします。(ちゃんと計算してくれているのですね)

    void makeEAN13(String code){
        EAN13Writer ean13Writer = new EAN13Writer();
        try {
            BitMatrix bitMatrix = ean13Writer.encode(code, BarcodeFormat.EAN_13, width, height);
            BufferedImage image = MatrixToImageWriter.toBufferedImage(bitMatrix);
            ImageIO.write(image, image_format, new File("barcode.png"));
        }catch(IOException | WriterException e){
            e.printStackTrace();
        }
    }

※出力されたコード

ISBN、EAN13、JANなどなど詳しい情報は別途調べて戴ければと思います。