用java怎样将一个文件中特定行列的数据读取出来

来源:百度知道 编辑:UC知道 时间:2024/06/20 12:09:44
文件内容比较多,但我需要从以下部分提取出特定的数据和信息:
......
_dataStart
Number Name A B Value ;
1-1 ABCDD -4.8341 0.5322 0.01 ;
1-2 AABD -4.8754 0.5566 0.00 ;
2-1 CABEDEE 3.4261 0.5246 0.02 ;
......
希望得到一个数组为name[] = {"ABCDD","AABD","CABEDEE"},即第二列,或者说Name那列;
另外一个数组包括数据:列A和列Value,可以是二维数组{{-4.8341,0.01},{-4.8754,0.00},{3.4261,0.02}},
或者两个一维数组,A[]和Value[]。

本人比较菜,正在学习中,希望大侠们指教。
能否具体详细一点说……

另外,获取出来的数据要用于计算的,是否要转换格式?
这个我知道了。。。Float.parseFloat()

需要详细的步骤啊。。。我码了半天,总是有这样那样的错误。

你可以这样组织数据,在列名的行前面加个标志符,用于表明是列名:
#Number Name A B Value;
当读到某行是以#开始的,表明这个不是数据,而是列名,然后把读取的列存放到一个数组中,你可以在列名之间使用分隔符,比如:
# Number : Name : A : B : Value;
通过读取指定的列名,你可以得到,列名在数组中对应的索引值。
对于存放数据的列就不加#,或者换成其他的标识符,同样把读取的数据行拆分存放到数组中,然后这样就很方便的找到列名所对应的列的数据了。
如果是读取行,那也很方便。
建议别使用,String col [] = row.split(":");来拆分数组,最好使用StringBuffer,或char数据来进行拆分操作。

读文件那个,可以把一行数据根据空格符分割为五个字符串,循环的写到6个长度的字符串数据组中;在循环里控制,只读取下标为1的数组。根据你上面的数组,如果这个文件很长,name列多,明显该数组长度会很大,这个时候不建议你用数组,可以用集合类来做。

后面的二维数组,你都可以再循环读取文件里做,只要根据数组下标取你想要的数据就可以了。

BufferedReader的readLine() 读取一个文本行,然后进行字符串截取,这个应该可以获取到你的数据。

用select语句只取name那列,循环取酒可以,将每次取的数据放入数组。