首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

JAVA 文件解析-讨论散分解决思路

2012-01-08 
JAVA 文件解析--讨论散分一个文件大致格式如下文件名:abcdefg13341 英语 english13345 汉语 chinese13346

JAVA 文件解析--讨论散分
一个文件大致格式如下 
文件名:abcdefg 
   
 13341 英语 english
 13345 汉语 chinese
 13346 西班牙语 span
  .
  .
  .
 99999 火星语 sosese 
   
  要用java读取这个abcdefg文件,并一行一行的按照 空格 分割解析成一个数组(每一行一个数组):  
  比如数组1 str1[] 表示第一行 他的str1[0]=13341 ,str1[1]=英语 str1[2]=english

比较简单,但请考虑效率…

[解决办法]
改用XML文件吧.

还好解悉,还清楚.
[解决办法]
基本的算法楼主都给出来,

但不知道如何考虑效率,
[解决办法]
关注下
[解决办法]
建议用xml,后者数据绑定;

要不就只能按照楼主的一行一行来了!
[解决办法]
使用NIO包中的文件映射吧,读出一行之后split,就可以得到楼主需要的东西了。JUST SIMPLE.
[解决办法]
最后要得到什么结果,两维数组还是嵌套的list
[解决办法]

Java code
    public static HashMap<String, String[]> readFile(String path)    {        HashMap<String, String[]> map = new HashMap<String, String[]>();        String[] array;        FileReader fr = null;        BufferedReader br = null;        try        {            fr = new FileReader(path);            br = new BufferedReader(fr);            String str;            while((str = br.readLine()) != null)            {                array = str.split(" ");                map.put(array[0], array);            }        }        catch(IOException e)        {            e.printStackTrace();        }        finally        {            try            {                if(fr != null)                {                    fr.close();                }                                if(br != null)                {                    br.close();                }            }            catch(IOException e)            {                e.printStackTrace();            }        }                return map;    }
[解决办法]
Java code
public List<String[]> getList(){  List<String[]> list = new ArrayList<String[]>;  File file = new File("abcdedg");  FileReader fileReader = new FileReader(file);  BufferedReader reader = new BufferedReader(fileReader);  String line = null;  while((line=reader.readLine())!=null){    String[] s = line.split(" ");      list.add(s);   }  reader.close();  return list;}
[解决办法]
要知道哪种方式效率最高,可能要写程序比较一下才知道
感觉读数据并组成数组就是那几种方式,没有特别效率高的

[解决办法]
我也写过一个类似的,用IO实现,效率怎样没测过,
可是想用xml实现,该怎么做,
哪位有代码,可否分享一下(xml)
[解决办法]
使用NIO包中的文件映射吧!
[解决办法]
写xml里有jdom或者dom4j解析简单~
[解决办法]
正则表达式
[解决办法]
正则表达式行吗

[解决办法]
关注
学习
收藏
帮顶
不懂
接分
------解决方案--------------------


BufferedReader流读
[解决办法]
如何考虑效率?
继续关注
[解决办法]
如果你真的像提高效率那就太难了,必然说qq的ip数据库文件,读这个文件效率就比较高,但是它不是明文的,要做数据结构分析的,要搞索引,另外我觉得如果简单的处理,效率都相差不多。简单的处理方法你可以自己多测试一下。时间复杂度的比较和i/o的磁盘开销。
[解决办法]
期待
学习·
[解决办法]
正则是最没效率的了。。。
[解决办法]
IO 读文件的效率已经是没办法再提高了,因为磁盘的磁头只有一个,
再怎么快一次也只能读取一丁点的东西。

像楼主的那种格式的文件,个人感觉也没什么效率可言了,也就那些死方法。
一行一行地读,一行一行地拆。
[解决办法]
顶一个

热点排行