gpt4 book ai didi

Java 日志文件读取器,charAt() 字符串索引超出范围

转载 作者:行者123 更新时间:2023-11-29 05:28:37 25 4
gpt4 key购买 nike

我有一个问题。我想制作一个程序,它需要一个日志文件并逐行解析它。

日志如下所示:

"2014-02-14 14:26:37,836 INFO [org.jboss.msc] (main) JBoss MSC version 1.0.4.GA-redhat-1"

我的代码:

 public static void main(String[] args) throws InterruptedException {
try
{
String sCurrentLine;


BufferedReader br = new BufferedReader(new FileReader("C:\\server.log"));

while ((sCurrentLine = br.readLine()) != null) {
String datetime = "";
String level = "";
String category = "";
String message = "";
String output = "";

if(sCurrentLine.length()<1){
}
else{
if (sCurrentLine.charAt(4)=='-' && sCurrentLine.charAt(7)=='-' && sCurrentLine.charAt(13)==':' && sCurrentLine.charAt(16)==':'){
String[] leerzeichen = sCurrentLine.split(" ");
String[] leerzeichenz = sCurrentLine.split(" ");

datetime = leerzeichen[0] + " " + leerzeichen[1];
level = leerzeichen[2];
category = leerzeichen[4];

int arraylength = leerzeichen.length;

for (int l=5; l<arraylength; l++){
message = message.concat(leerzeichen[l] + " ");
}
output = datetime + level + category + message;
} else {
message = message.concat(sCurrentLine);
output += message;

}
}
System.out.println(output);
}


} catch (IOException e) {
e.printStackTrace();
}
}

程序看起来,如果行的开头是这样的:0000-00-00 00:00:00如果不是,则该行只是与之前行相关的消息。

但我总是得到错误:

 Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.lang.String.charAt(String.java:658)
at javaapplication5.JavaApplication5.main(JavaApplication5.java:38)

但是他读了一些日志行。但直到日志结束。

你能帮帮我吗?对不起我的英语。

最佳答案

你排队有问题:

if (sCurrentLine.charAt(4)=='-' && sCurrentLine.charAt(7)=='-' && sCurrentLine.charAt(13)==':' && sCurrentLine.charAt(16)==':'){

您不能假设该行至少有 4 个、7 个或更多字符。

尝试将其更改为:

if (sCurrentLine.length() >= 16 && sCurrentLine.charAt(4)=='-' && sCurrentLine.charAt(7)=='-' && sCurrentLine.charAt(13)==':' && sCurrentLine.charAt(16)==':'){

关于Java 日志文件读取器,charAt() 字符串索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21875715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com