m*l
2 楼
要实现下面的功能,可是一点儿idea都没有,该用什么类什么思路实现
恳请java前辈指点
万分感谢!!
将类似这样的一个比较长的log文件解析开
[18/09/2011 06:53:21:021 PM] ERROR Main 70: Running logger, watch out!
java.lang.IndexOutOfBoundsException: Index: 99, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
[18/09/2011 06:53:21:021 PM] INFO Main 73: Running logger, watch out!
[18/09/2011 06:53:21:021 PM] INFO Main 73: Identity manager starting.
。。。。。。。
按时间解析开,比如上面的一段就是按时间分的3条
要求是:
+不能用stream把整个文件load到内存
+还要把每个时间和后面的内容解析开
+最好用普通的方法不用特别的类
原题要求
- Must not load entire file in memory (stream)
- Must capture the entire entry (single and multiple lines)
- Must split the entry also in two parts, timestamp and the rest of the
entry
- Must use a regular expression to parse
- Must be configurable to parse log files in slightly different formats
恳请java前辈指点
万分感谢!!
将类似这样的一个比较长的log文件解析开
[18/09/2011 06:53:21:021 PM] ERROR Main 70: Running logger, watch out!
java.lang.IndexOutOfBoundsException: Index: 99, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
[18/09/2011 06:53:21:021 PM] INFO Main 73: Running logger, watch out!
[18/09/2011 06:53:21:021 PM] INFO Main 73: Identity manager starting.
。。。。。。。
按时间解析开,比如上面的一段就是按时间分的3条
要求是:
+不能用stream把整个文件load到内存
+还要把每个时间和后面的内容解析开
+最好用普通的方法不用特别的类
原题要求
- Must not load entire file in memory (stream)
- Must capture the entire entry (single and multiple lines)
- Must split the entry also in two parts, timestamp and the rest of the
entry
- Must use a regular expression to parse
- Must be configurable to parse log files in slightly different formats
g*e
3 楼
这还需要用java? shell, awk大家随喜,都是大牛们看不上的script
【在 m***l 的大作中提到】
: 要实现下面的功能,可是一点儿idea都没有,该用什么类什么思路实现
: 恳请java前辈指点
: 万分感谢!!
: 将类似这样的一个比较长的log文件解析开
: [18/09/2011 06:53:21:021 PM] ERROR Main 70: Running logger, watch out!
: java.lang.IndexOutOfBoundsException: Index: 99, Size: 0
: at java.util.ArrayList.RangeCheck(ArrayList.java:547)
: [18/09/2011 06:53:21:021 PM] INFO Main 73: Running logger, watch out!
: [18/09/2011 06:53:21:021 PM] INFO Main 73: Identity manager starting.
: 。。。。。。。
【在 m***l 的大作中提到】
: 要实现下面的功能,可是一点儿idea都没有,该用什么类什么思路实现
: 恳请java前辈指点
: 万分感谢!!
: 将类似这样的一个比较长的log文件解析开
: [18/09/2011 06:53:21:021 PM] ERROR Main 70: Running logger, watch out!
: java.lang.IndexOutOfBoundsException: Index: 99, Size: 0
: at java.util.ArrayList.RangeCheck(ArrayList.java:547)
: [18/09/2011 06:53:21:021 PM] INFO Main 73: Running logger, watch out!
: [18/09/2011 06:53:21:021 PM] INFO Main 73: Identity manager starting.
: 。。。。。。。
w*z
8 楼
string operation,(split, substring , indexof etc. ) 或regex
【在 m***l 的大作中提到】
: 要实现下面的功能,可是一点儿idea都没有,该用什么类什么思路实现
: 恳请java前辈指点
: 万分感谢!!
: 将类似这样的一个比较长的log文件解析开
: [18/09/2011 06:53:21:021 PM] ERROR Main 70: Running logger, watch out!
: java.lang.IndexOutOfBoundsException: Index: 99, Size: 0
: at java.util.ArrayList.RangeCheck(ArrayList.java:547)
: [18/09/2011 06:53:21:021 PM] INFO Main 73: Running logger, watch out!
: [18/09/2011 06:53:21:021 PM] INFO Main 73: Identity manager starting.
: 。。。。。。。
【在 m***l 的大作中提到】
: 要实现下面的功能,可是一点儿idea都没有,该用什么类什么思路实现
: 恳请java前辈指点
: 万分感谢!!
: 将类似这样的一个比较长的log文件解析开
: [18/09/2011 06:53:21:021 PM] ERROR Main 70: Running logger, watch out!
: java.lang.IndexOutOfBoundsException: Index: 99, Size: 0
: at java.util.ArrayList.RangeCheck(ArrayList.java:547)
: [18/09/2011 06:53:21:021 PM] INFO Main 73: Running logger, watch out!
: [18/09/2011 06:53:21:021 PM] INFO Main 73: Identity manager starting.
: 。。。。。。。
A*r
12 楼
1 用file input stream 通过流按行读取
2 你能看到有些行是没有时间戳的,这个属于上一行为同一个entry
3 对每行使用正则解析
4 正则解析不能hard coding,把正则作为一个可配置项放在配置文件中
2 你能看到有些行是没有时间戳的,这个属于上一行为同一个entry
3 对每行使用正则解析
4 正则解析不能hard coding,把正则作为一个可配置项放在配置文件中
p*r
16 楼
俺说下思路及考官意图,个人看法。
#1 绝对不一次性读入整个文件!!!!
这个是考你处理大文件的方法,
一次性读入,3行还行,如果3百万行,那就是坑爹
所以类似readline的方式,分行读入,但是不是只读1行!
【注意点】
读单项(不是单行!!!)的时候做一个判断,是否读到结尾了,因为不一定一行包括
了所有信息。
是否结尾标志,用regular expression判断,一旦读到第2个时间,结束,进入数据拆
分!
【可能会加分的,但是有点showoff,遇到考官装X的会起反效果。】
你可以在读文件前再做一个判断,文件小于类似10k,直接读文件,不然就分行读。
也就是说你知道如何处理大文件,但是对小文件也不扯淡。。
#2 必须用regular expression,要求#4里说得很清楚!!!!
正则表达式分离数据,必须学会,以后会用很多。
判断日期格式,有很多种表达式。
如果不懂,就先去研究一把,这个题目只是分离日期以及后面数据,算简单的。
#3 把数据分离成2部分就不说了,这个你肯定会。
#4 第5项要求的意思其实是为了cross platform等后期需要,
所以建议用xml(rss)或json等格式re-format数据,我个人建议用json,更精简。
#1 绝对不一次性读入整个文件!!!!
这个是考你处理大文件的方法,
一次性读入,3行还行,如果3百万行,那就是坑爹
所以类似readline的方式,分行读入,但是不是只读1行!
【注意点】
读单项(不是单行!!!)的时候做一个判断,是否读到结尾了,因为不一定一行包括
了所有信息。
是否结尾标志,用regular expression判断,一旦读到第2个时间,结束,进入数据拆
分!
【可能会加分的,但是有点showoff,遇到考官装X的会起反效果。】
你可以在读文件前再做一个判断,文件小于类似10k,直接读文件,不然就分行读。
也就是说你知道如何处理大文件,但是对小文件也不扯淡。。
#2 必须用regular expression,要求#4里说得很清楚!!!!
正则表达式分离数据,必须学会,以后会用很多。
判断日期格式,有很多种表达式。
如果不懂,就先去研究一把,这个题目只是分离日期以及后面数据,算简单的。
#3 把数据分离成2部分就不说了,这个你肯定会。
#4 第5项要求的意思其实是为了cross platform等后期需要,
所以建议用xml(rss)或json等格式re-format数据,我个人建议用json,更精简。
m*l
19 楼
感谢前辈指点!!
还有几点不明想请教
1。我用这种方式读入单行,但是发现FileReader继承自 OutputStreamWriter,那是不
是也算用到了stream,不知道是否load file in memory,所以不知道这种方式是否真
的满足第一条要求
1.Must not load entire file in memory (stream)
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
// process the line.
}
br.close();
2。多行的时候是否需要保持多行的状态?有id建议:“建一个HashMap ArrayList>,key是时间,array里放后面的就行了while(true)里每次读一行
从括号里解出时间字符串,扔到map里”
不知这个方法是否可行?是否繁琐了?就直接解析出来每行存到xml或者json就行了?
3。我对存成xml,json从来没有接触过,不知道暂时存到比如上面的HashMap中再每条
记录加上标号写到一个新的log中是否满足 5.Must be configurable to parse log
files in slightly different formats
就我现在的水平感觉这条要求貌似要存到一个结构中比较方便地再存到需要的各种数据
形式中
【在 p**r 的大作中提到】
: 俺说下思路及考官意图,个人看法。
: #1 绝对不一次性读入整个文件!!!!
: 这个是考你处理大文件的方法,
: 一次性读入,3行还行,如果3百万行,那就是坑爹
: 所以类似readline的方式,分行读入,但是不是只读1行!
: 【注意点】
: 读单项(不是单行!!!)的时候做一个判断,是否读到结尾了,因为不一定一行包括
: 了所有信息。
: 是否结尾标志,用regular expression判断,一旦读到第2个时间,结束,进入数据拆
: 分!
还有几点不明想请教
1。我用这种方式读入单行,但是发现FileReader继承自 OutputStreamWriter,那是不
是也算用到了stream,不知道是否load file in memory,所以不知道这种方式是否真
的满足第一条要求
1.Must not load entire file in memory (stream)
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
// process the line.
}
br.close();
2。多行的时候是否需要保持多行的状态?有id建议:“建一个HashMap
从括号里解出时间字符串,扔到map里”
不知这个方法是否可行?是否繁琐了?就直接解析出来每行存到xml或者json就行了?
3。我对存成xml,json从来没有接触过,不知道暂时存到比如上面的HashMap中再每条
记录加上标号写到一个新的log中是否满足 5.Must be configurable to parse log
files in slightly different formats
就我现在的水平感觉这条要求貌似要存到一个结构中比较方便地再存到需要的各种数据
形式中
【在 p**r 的大作中提到】
: 俺说下思路及考官意图,个人看法。
: #1 绝对不一次性读入整个文件!!!!
: 这个是考你处理大文件的方法,
: 一次性读入,3行还行,如果3百万行,那就是坑爹
: 所以类似readline的方式,分行读入,但是不是只读1行!
: 【注意点】
: 读单项(不是单行!!!)的时候做一个判断,是否读到结尾了,因为不一定一行包括
: 了所有信息。
: 是否结尾标志,用regular expression判断,一旦读到第2个时间,结束,进入数据拆
: 分!
c*e
20 楼
不知道你老师到底是什么意思。
一行一行地读,当读到第二行 的时候,变量line的值从第一行的值变成了第二行的值
,任何时刻,在内存里只有文件的一行的内容存在。
【在 m***l 的大作中提到】
: 感谢前辈指点!!
: 还有几点不明想请教
: 1。我用这种方式读入单行,但是发现FileReader继承自 OutputStreamWriter,那是不
: 是也算用到了stream,不知道是否load file in memory,所以不知道这种方式是否真
: 的满足第一条要求
: 1.Must not load entire file in memory (stream)
: BufferedReader br = new BufferedReader(new FileReader(file));
: String line;
: while ((line = br.readLine()) != null) {
: // process the line.
一行一行地读,当读到第二行 的时候,变量line的值从第一行的值变成了第二行的值
,任何时刻,在内存里只有文件的一行的内容存在。
【在 m***l 的大作中提到】
: 感谢前辈指点!!
: 还有几点不明想请教
: 1。我用这种方式读入单行,但是发现FileReader继承自 OutputStreamWriter,那是不
: 是也算用到了stream,不知道是否load file in memory,所以不知道这种方式是否真
: 的满足第一条要求
: 1.Must not load entire file in memory (stream)
: BufferedReader br = new BufferedReader(new FileReader(file));
: String line;
: while ((line = br.readLine()) != null) {
: // process the line.
p*r
21 楼
java语法,以及一些关键词,你最好问问java高手们。
俺java基本忘光了。。。
#1
题目要求是must not load ENTIRE file in memory
貌似有个bufferreader的可以,你设置个limition,怎么读不用担心load整个文件到
memory
#2
时间做key不行,因为就是你的example里面就有时间一模一样的,除非时间数据全部是
unique.
#3
输出成何种格式很难说,因为不知道你公司是什么类型的。
但是既然开始要求你不load entire file,就意味着file size很大
如果你再把所有东西写入结构,再导出另一个log,其实就失去意义了。
#4
最后回答兼职问题,这东西如果是熟练码工的话,应该15分钟内搞定。
1。我用这种方式读入单行,但是发现FileReader继承自 OutputStreamWriter,那是不
是也算用到了stream,不知道是否load file in memory,所以不知道这种方式是否真
的满足第一条要求
1.Must not load entire file in memory (stream)
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
// process the line.
}
br.close();
2。多行的时候是否需要保持多行的状态?有id建议:“建一个HashMap ArrayList>,key是时间,array里放后面的就行了while(true)里每次读一行
从括号里解出时间字符串,扔到map里”
不知这个方法是否可行?是否繁琐了?就直接解析出来每行存到xml或者json就行了?
3。我对存成xml,json从来没有接触过,不知道暂时存到比如上面的HashMap中再每条
记录加上标号写到一个新的log中是否满足 5.Must be configurable to parse log
files in slightly different formats
就我现在的水平感觉这条要求貌似要存到一个结构中比较方便地再存到需要的各种数据
形式中
【在 m***l 的大作中提到】
: 感谢前辈指点!!
: 还有几点不明想请教
: 1。我用这种方式读入单行,但是发现FileReader继承自 OutputStreamWriter,那是不
: 是也算用到了stream,不知道是否load file in memory,所以不知道这种方式是否真
: 的满足第一条要求
: 1.Must not load entire file in memory (stream)
: BufferedReader br = new BufferedReader(new FileReader(file));
: String line;
: while ((line = br.readLine()) != null) {
: // process the line.
俺java基本忘光了。。。
#1
题目要求是must not load ENTIRE file in memory
貌似有个bufferreader的可以,你设置个limition,怎么读不用担心load整个文件到
memory
#2
时间做key不行,因为就是你的example里面就有时间一模一样的,除非时间数据全部是
unique.
#3
输出成何种格式很难说,因为不知道你公司是什么类型的。
但是既然开始要求你不load entire file,就意味着file size很大
如果你再把所有东西写入结构,再导出另一个log,其实就失去意义了。
#4
最后回答兼职问题,这东西如果是熟练码工的话,应该15分钟内搞定。
1。我用这种方式读入单行,但是发现FileReader继承自 OutputStreamWriter,那是不
是也算用到了stream,不知道是否load file in memory,所以不知道这种方式是否真
的满足第一条要求
1.Must not load entire file in memory (stream)
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
// process the line.
}
br.close();
2。多行的时候是否需要保持多行的状态?有id建议:“建一个HashMap
从括号里解出时间字符串,扔到map里”
不知这个方法是否可行?是否繁琐了?就直接解析出来每行存到xml或者json就行了?
3。我对存成xml,json从来没有接触过,不知道暂时存到比如上面的HashMap中再每条
记录加上标号写到一个新的log中是否满足 5.Must be configurable to parse log
files in slightly different formats
就我现在的水平感觉这条要求貌似要存到一个结构中比较方便地再存到需要的各种数据
形式中
【在 m***l 的大作中提到】
: 感谢前辈指点!!
: 还有几点不明想请教
: 1。我用这种方式读入单行,但是发现FileReader继承自 OutputStreamWriter,那是不
: 是也算用到了stream,不知道是否load file in memory,所以不知道这种方式是否真
: 的满足第一条要求
: 1.Must not load entire file in memory (stream)
: BufferedReader br = new BufferedReader(new FileReader(file));
: String line;
: while ((line = br.readLine()) != null) {
: // process the line.
相关阅读
关于Message Driven Bean的问题。Node.js, server-side javascriptc++熟手如何学习Java直到能够参与开发企业级应用?帮忙看看maven 的问题中国人北美甲骨文用户组2012年隆重推出大型IT新手入门讲座 (转招人给写个网络程序 (转载)关于实现一个Web Application的问题一大堆Java的 web app framework,学那个最有用啊问个找工作的事情Re: Seeking a couple of Java developers for Googleone java question under ubuntuWhere can I find the definition of the method: java.lang.System.getProperties().list()【JOBS】招Software Engineer, QA, DBA at SF/NYC (转载)问个swing的问题thread 在进入 timed_waiting 或 waiting之前是不是要释放它拥有的所有lock?好想去德国参加EclipseCon啊EE出身,正在找JAVA工作,求建议这玩意是啥?Definitions of Designations多個Software Engineer 職缺 (转载)