当前位置:编程学习 > JAVA >>

考勤机里导出的演示数据----我只要前面2列,该怎么做?时间复杂度要求很高,做过大数据处理的兄弟帮帮忙

考勤机里导出的演示数据----我只要前面2列,该怎么做?时间复杂度要求很高,做过大数据处理的兄弟帮帮忙
文本如下:

        1 2013-10-22 11:08:31 1 0 1 0
        1 2013-10-22 11:08:37 1 0 1 0
        4 2013-10-22 11:23:01 1 0 1 0
        2 2013-10-22 11:23:12 1 0 1 0
        1 2013-10-22 11:23:20 1 0 1 0
        3 2013-10-22 11:23:25 1 0 1 0
        3 2013-10-22 11:23:30 1 0 1 0
        1 2013-10-22 12:22:44 1 0 1 0
        1 2013-10-22 12:22:48 1 0 1 0
        1 2013-10-22 12:22:52 1 0 1 0
        1 2013-10-22 12:23:03 1 0 1 0
        3 2013-10-22 12:23:12 1 0 1 0
        3 2013-10-22 12:23:21 1 0 1 0
        4 2013-10-22 12:24:54 1 0 1 0
        4 2013-10-22 17:24:50 1 0 1 0
        1 2013-10-23 17:41:27 1 0 1 0
        1 2013-10-23 17:41:32 1 0 1 0
        1 2013-10-23 17:44:51 1 0 1 0
        1 2013-10-23 17:52:44 1 0 1 0 java 大数据 --------------------编程问答--------------------

String[] s = "1 2013-10-22 11:08:31 1 0 1 0".split(" ");
System.out.print(s[0]+" "+s[1]+" " +s[2]);
--------------------编程问答-------------------- 首先,我想问一下这个写在什么里面?
是普通的csv文件么?

另外这文件具体大约多大?
简单的话看格式很整理
String line;
while(rs.....){
System.out.println(line.str.substring(0, 50));//第二个参数为11:08:31最后一个字符的位置

}
--------------------编程问答--------------------
引用 2 楼 AA5279AA 的回复:
首先,我想问一下这个写在什么里面?
是普通的csv文件么?

另外这文件具体大约多大?
简单的话看格式很整理
String line;
while(rs.....){
System.out.println(line.str.substring(0, 50));//第二个参数为11:08:31最后一个字符的位置

}

是文本文件, --------------------编程问答--------------------
引用 1 楼 huxiweng 的回复:

String[] s = "1 2013-10-22 11:08:31 1 0 1 0".split(" ");
System.out.print(s[0]+" "+s[1]+" " +s[2]);

还是没解决,求版主帮忙 --------------------编程问答--------------------
引用 3 楼 u011501295 的回复:
Quote: 引用 2 楼 AA5279AA 的回复:

首先,我想问一下这个写在什么里面?
是普通的csv文件么?

另外这文件具体大约多大?
简单的话看格式很整理
String line;
while(rs.....){
System.out.println(line.str.substring(0, 50));//第二个参数为11:08:31最后一个字符的位置

}

是文本文件,


public static void main(String[] args) {
try {
FileReader fr=new FileReader(new File("D://dd.txt"));//你文件的地址
BufferedReader br=new BufferedReader(fr);
String line;
//1 2013-10-22 11:08:31
while((line=br.readLine())!=null){
String str=line.substring(0, 23);
System.out.println(str);
}


} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

d盘中的dd.txt文件:
  1 2013-10-22 11:08:31 1 0 1 0
注意最前面有空格的

输出结果:
  1 2013-10-22 11:08:31
最前面也有空格。。

--------------------编程问答-------------------- 楼上的方法可以,然后你再System.out.println(" 1 2013-10-22 11:08:31".length());
就是需要截取的长度
--------------------编程问答-------------------- 如果你的数据格式是完全工整的,直接按照字节数读取吧。按行读取再substring效率是比较低的 --------------------编程问答-------------------- 这也算大数据么。。 --------------------编程问答--------------------
引用 8 楼 dollyn 的回复:
这也算大数据么。。


是10万行。。。。。这个只是演示数据 --------------------编程问答-------------------- 如果是按照楼主固定规则列出的数据那么楼上几位已经解决了,如果是怕内存溢出的话就两种方案咯。
第一:增大jvm的使用内存
第二:分段读取 --------------------编程问答--------------------
引用 10 楼 MrsFeng 的回复:
如果是按照楼主固定规则列出的数据那么楼上几位已经解决了,如果是怕内存溢出的话就两种方案咯。
第一:增大jvm的使用内存
第二:分段读取


没读出来!还是没解决
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,