【Java】ファイル読込で行を指定する方法

【Java】ファイル読込で行を指定する方法

管理人
この記事ではJavaのファイル読込で行を指定する方法を紹介します。

 Javaのファイル読込で行を指定するには受け取りたい行を引数に設定し、for文とreadLineにて指定した行のみに処理を実施することで実現可能です。

 例えば、以下のプログラムでは指定した行のみMapに格納しています。

 ファイルの中身は以下とします

1行目:a
2行目:b
3行目:c
4行目:d
5行目:e

 // java ファイル読み込み 行 指定
public Map<String, String> 行指定ファイル読み込み(File file, 
                     long 指定行開始, 
                     long 指定行終了, 
                     Map<String, String> 格納用Map) throws IOException {
    try {
        // ファイル読込
        BufferedReader br = new BufferedReader(new FileReader(file));
        // 指定行チェック(行数の存在有無及び逆転チェック)
        long lineCount = Files.lines(file.toPath()).count();
        if (指定行開始 > lineCount
            || 指定行終了 > lineCount
            || 指定行終了 < 指定行開始 ) {
            br.close();
            throw new IllegalArgumentException("行指定が適切でありません。");
         }
         // ファイルをfor文で読込
         for (int i = 1; i <= 指定行終了; i++) {
        // 指定行に到達するまで読込続ける
        if (i < 指定行開始) {
             br.readLine();
        // 指定行開始から終了までの値をMapに格納する
        // ※指定した行についてはMapに格納
        // キー値に行数、値に指定行の値をセット
        } else {
            String line = br.readLine();
            格納用Map.put(String.valueOf(i), line);
        }
    }
    br.close();
    } catch (IOException e) {
        System.out.println(e);
    }
    System.out.println(格納用Map);
    return 格納用Map;
}

//実行結果 
//  指定行開始 = 2, 指定行終了 = 4
{2=b, 3=c, 4=d}
// 指定行開始 = 5, 指定行終了 = 5
{5=e}
// 指定行開始 = 1, 指定行終了 = 1
{1=a}

管理人
Javaの記事の一覧はJava にまとめてあります

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

PAGE TOP