データインポートの基礎

Java でのデータインポート

Anthony Markham

VP Quant Developer

講師紹介

 

$$

Anthony Markham

  • VP、定量的開発者/アナリティクスリード
  • 投資銀行でのC++/Java/Python開発者
  • 大学での教育経験あり

 

Anthony Markham

Java でのデータインポート

データインポートの基礎

  • Javaアプリケーションで外部データを処理するために不可欠

  • 一般的な形式: CSV(カンマ区切り)、JSON、Excel

インポートワークフローの5つのステップを示すフローチャート

  • Javaはjava.ioとjava.nioパッケージで強力なツールを提供する
Java でのデータインポート

ファイル操作の基本

  • Fileクラスはファイルまたはディレクトリを表す
  • exists()、length()、isDirectory()などのメソッドでファイルを検証できる
import java.io.File;
File dataFile = new File("data.csv");
boolean exists = dataFile.exists();
long size = dataFile.length();
boolean isDirectory = dataFile.isDirectory();
Java でのデータインポート

PathインターフェースとFilesクラス

  • PathインターフェースとFilesクラスはモダンなファイル操作を提供する(java.nio)
  • メリット: 柔軟性の向上、例外処理の改善、パフォーマンスの向上
  • 単純なファイル操作にはjava.io、高パフォーマンスなI/O操作にはjava.nio
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.Files;
Path dataPath = Paths.get("data.csv");

boolean exists = Files.exists(dataPath); long size = Files.size(dataPath);
Java でのデータインポート

テキストファイルの読み込み

  • Files.readAllLines(): ファイル全体をList<String>として読み込む(1行1要素)
  • Files.readString(): ファイル全体を1つの文字列として読み込む
Path file = Paths.get("data.csv");

// Read all lines at once List<String> lines = Files.readAllLines(file); // Read entire file as a string String content = Files.readString(file);

$$

$$

  • ファイル全体がメモリに読み込まれる 🛑
Java でのデータインポート

データバリデーション

  • 処理前にデータ品質を確保する
  • データの品質と構造を確認する
  • 一般的なバリデーションを実施する
  • Exceptionを処理する

データバリデーションのチェック項目

Java でのデータインポート

データバリデーション

  • よくあるチェック: ファイルが空でないこと、ヘッダーに必要な列が含まれること
  • try-catchブロックでExceptionを処理する ✅
try {
  Path file = Paths.get("data.csv");
  List<String> lines = Files.readAllLines(file);
  if (lines.isEmpty()) { // Validate file has content
      System.out.println("Warning: File is empty");}
  String header = lines.get(0);
  if (!header.contains("id") || !header.contains("name")) {    // Check header
      System.out.println("Error: File missing required columns");
} catch (Exception e) {
    System.out.println("Error reading file: " + e.getMessage());}
Java でのデータインポート

まとめ

クラス/インターフェース メソッド 説明
File new File() ファイルパスの抽象表現を作成する
File exists() ファイルの存在を確認する
File length() ファイルサイズをバイト単位で取得する
Paths get() 文字列からPathオブジェクトを作成する
Files exists() ファイルの存在を確認する(モダンAPI)
Files size() ファイルサイズをバイト単位で取得する(モダンAPI)
Files readAllLines() ファイル全体をList<String>として読み込む
Files readString() ファイル全体を1つのStringとして読み込む
1 https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html
Java でのデータインポート

練習しましょう!

Java でのデータインポート

Preparing Video For Download...