gpt4 book ai didi

java - Java中如何读取特定行

转载 作者:行者123 更新时间:2023-12-01 12:30:41 25 4
gpt4 key购买 nike

我有一个包含这样内容的文件

Fri Sep 19 19:16:39 UTC 2014
Test launched. Check every minute for an update
minute 9:
ec2-54-84-5-158.compute-1.amazonaws.com: Requests per second: 926.13 [#/sec] (mean)
----------------------
minute 10:
ec2-54-84-5-158.compute-1.amazonaws.com: Requests per second: 919.23 [#/sec] (mean)
----------------------
minute 11:
ec2-54-209-65-210.compute-1.amazonaws.com: Requests per second: 547.62 [#/sec] (mean)
ec2-54-84-5-158.compute-1.amazonaws.com: Requests per second: 875.14 [#/sec] (mean)
----------------------
minute 12:
ec2-54-209-65-210.compute-1.amazonaws.com: Requests per second: 862.83 [#/sec] (mean)
ec2-54-84-5-158.compute-1.amazonaws.com: Requests per second: 876.78 [#/sec] (mean)
----------------------
minute 13:
ec2-54-209-65-210.compute-1.amazonaws.com: Requests per second: 857.37 [#/sec] (mean)
ec2-54-84-5-158.compute-1.amazonaws.com: Requests per second: 880.64 [#/sec] (mean)
----------------------

它基本上每分钟都会更新。所以我想从这两个“------------”行之间的最后一个 block 获取最后一个数据。最终目标是对该 block 每秒的请求进行求和。您能否指导我应用最佳逻辑?

最佳答案

此代码将识别每秒请求数(字段 #5),并将识别当前行和包含每秒请求数的最后(最近)行的每秒请求数之间的差异。

此代码假定每秒的请求数始终出现在紧接以世界“分钟”开头的行(不带引号)之后的行上。

    try{
BufferedReader br = new BufferedReader(new FileReader("C:\\TEMP\\MINUTE.txt"));

String line;
String[] lineFields;
int i;
int thisLine_minute;
int lastLine_minute;
Double thisLine_reqpersec;
Double lastLine_reqpersec;
lastLine_minute = 0;
thisLine_reqpersec= 0.0;
lastLine_reqpersec= 0.0;
while ( (line = br.readLine()) != null) {

lineFields = line.split("\\s+");
System.out.printf("LINE READ: %s\n", line);
for (i=0; i < lineFields.length; i++) {
System.out.printf("FIELD: %d IS: %s\n", i, lineFields[i]);
}
if (lineFields[0].toUpperCase().equals("MINUTE")) {
thisLine_minute=1;
}
else {
thisLine_minute=0;
}
try {
if (lastLine_minute==1) {
lastLine_reqpersec = thisLine_reqpersec;
thisLine_reqpersec = new Double(lineFields[4]);
}
}
catch (Exception excepStrToInt) {
thisLine_reqpersec = 0.0;
}
System.out.printf("*** REQUESTS PER SECOND: %f\n",
thisLine_reqpersec);
System.out.printf("*** REQUESTS PER SECOND: DIFFERENCE: %f\n",
(thisLine_reqpersec- lastLine_reqpersec));

lastLine_minute=thisLine_minute;
}
br.close();
}
catch(Exception e){
}

关于java - Java中如何读取特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25941297/

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