###実現したいこと
ファイルの読み込みを一行づつ行って、最終的にはoutputLogListというリストに一行書き込むことを目標としたループ処理の中でネストが深くなってしまっているのですが、できるかぎりネスト数を減らしたいと思っています。どのような方法が考えられるでしょうか。
###現在のソースコード
Java
1// 一行づつ読み込みループ開始 2String logLine = reader.readLine(); 3while (logLine != null) { 4 logLineCount++; 5 inputData.setLogLine(logLine); 6 // スタックトレース部ではない 7 if (!logLine.startsWith("\t")) { 8 // 日時のフォーマットが期待通りである 9 if (logLineCheck.isDateFormat(inputData)) { 10 // 指定した期間内である 11 if (logLineCheck.isDateScope(inputData)) { 12 logTargetLineCount++; 13 // タブ区切りオプションが指定されていたら実施 14 if (selectedOption != null 15 && selectedOption.indexOf(Execute.TAB_OPTION) != -1) { 16 option.doTabDelimiter(inputData, inputFileName); 17 } 18 // 出力ログリストへ追加 19 logDate.append(sdfStandard.format(inputData.getLogLineDate())); 20 logDate.append("\t"); 21 logDate.append(logLine); 22 outputLogList.add(logDate.toString()); 23 logDate.setLength(0); 24 } 25 //日時フォーマットが期待通りでない 26 } else { 27 // ログメッセージ出力 28 message.append("入力ファイルの日時フォーマットが定義と一致しないため、次の行を読み込みます。("); 29 message.append(inputFileName); 30 message.append(":"); 31 message.append(logLineCount); 32 message.append("行目)"); 33 logger.warn(message.toString()); 34 message.setLength(0); 35 } 36 //スタックトレース部を読み込んだ 37 } else { 38 // ログメッセージ出力 39 message.append("スタックトレース部分のため、次の行を読み込みます。("); 40 message.append(inputFileName); 41 message.append(":"); 42 message.append(logLineCount); 43 message.append("行目)"); 44 logger.debug(message.toString()); 45 message.setLength(0); 46 } 47 // 次の行を読み込む 48 logLine = reader.readLine(); 49}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/29 05:37