やりたいことは以下のようなことです。簡単にファイル分割できるライブラリやメソッドがなさそうだったので、メソッドを自作してみました。
ファイルを行単位で指定個数に分割する方法
やっていることは単純です。分割する元ファイルを1レコードずつ読み込み、分割するファイルに1行ずつ書き込みます。分割されたファイルは、元ファイル名にサフィックス(例. _0
, _1
)をつけて、元ファイルと同じディレクトリに作成します。ちなみに、元ファイル自体は削除されず、そのまま残ります。
実際に上記コードを動かしてみます。元ファイルは、以下の内容です。
(行数 / 分割数)
に余りが出ない場合は、以下のような結果になります。きれいに行数が分割されます。
(行数 / 分割数)
に余りが出る場合は、以下のような結果になります。余りが出る分、ファイル間で行数の差分が出ます。
分割数
が行数
を超える場合は、以下のような結果になります。書き込む行がない場合、空ファイルができます。
まとめ
Javaでファイルを行単位で指定個数に分割する方法でした。