我想讀取一個日誌文件,並試圖打印所有日誌之間的某些日期,但我最終得到這個異常,當我試圖從日誌中檢索日期。 這是我的代碼,它實際上是打印一些日誌信息java.lang.StringIndexOutOfBoundsException:異常
public class Teat {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
{
// TODO Auto-generated method stub
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy");
BufferedReader br = new BufferedReader(new FileReader(
"C:\\log.log"));
String sCurrentLine;
try {
String startDate = "12 Dec 2013";
String endDate = "12 Dec 2013";
Date dateStart = formatter.parse(startDate);
Date dateEnd = formatter.parse(endDate);
Date logDate = null;
int sDay = dateStart.getDate();
int sMonth = dateStart.getMonth();
int sYear = dateStart.getYear();
int eDay = dateEnd.getDate();
int eMonth = dateEnd.getMonth();
int eYear = dateEnd.getYear();
String date;
int i=0;
ArrayList<String> Sub_string = new ArrayList<String>();
do {
sCurrentLine = br.readLine();
Sub_string.add(sCurrentLine.substring(0, 11));
logDate = formatter.parse(Sub_string.get(i));
int lDay = logDate.getDate();
int lMonth = logDate.getMonth();
int lYear = logDate.getYear();
if (lYear >= sYear && lYear <= eYear)
{
if (lMonth >= sMonth && lMonth <= eMonth)
{
if (lDay >= sDay && lDay <= eDay) {
System.out.println(sCurrentLine);
}
}
}
else{System.out.println("pls ented valid dates");}
i++;
}while(sCurrentLine!=null);
}
catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
誤差
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index
out of range: 11
at java.lang.String.substring(Unknown Source)
at Teat.main(Teat.java:41)
'Sub_string.add(sCurrentLine.substring(0,11));''sCurrentLine'這裏的值是多少? –
我從日誌文件中讀取的行, – sathya
yes是那行的值是多少? –