文本格式大致如下:
a href=http://news.sina.com.cn/z/wjbvisitjapan/index.shtml class=a06 target=_blank
a href=http://news.sina.com.cn/c/2007-04-10/181812744847.shtml class=a06 target=_blank
a href=http://news.sina.com.cn/c/2007-04-11/012012745857.shtml class=a06 target=_blank想每行赋值给一个String数组元素,但是事先不知道,txt文件里有多少行,谁有这方面的实例?

解决方案 »

  1.   

    如果String数组,不是很合适的处理方式,其他什么数据结构更合适呢?
      

  2.   

    public class  ReadFile
    {
    public static void main(String[] args) throws Exception
    {
    java.io.BufferedReader reader=new java.io.BufferedReader(new java.io.FileReader("a.txt"));
    java.util.List list=new java.util.ArrayList();
    String line;
    while((line=reader.readLine())!=null)
    {
    list.add(line);
    }
    reader.close();
    for(java.util.Iterator i=list.iterator();i.hasNext();)
    System.out.println(i.next());
    }
    }
    不建议使用数组,因为你事先不知道文件有多少行,所以没法初始化这个数组。
      

  3.   

    好的,我先试试,以前所有的都是使用数组,发现java的String太有局限,不过前面写了不少,懒的该了,看来要把前面的都该了。。
    先谢谢imA了
      

  4.   

    如果将main函数写到一个其他函数呢
    如何将list作为函数的返回值呢?
      

  5.   


    public class ReadFile
    {
    public java.util.List ttt() throws Exception
    {
    java.io.BufferedReader reader=new java.io.BufferedReader(new java.io.FileReader("a.txt"));
    java.util.List list=new java.util.ArrayList();
    String line;
    while((line=reader.readLine())!=null)
    {
    list.add(line);
    }
    reader.close();
    for(java.util.Iterator i=list.iterator();i.hasNext();)
    System.out.println(i.next());
    return list;
    }
    }
      

  6.   

    给上面的代码加上异常处理块就OK了;另外你说的赋值给 String 数组有什么特殊用途吗?
      

  7.   

    在javascript视频的第七讲的第一个片断,也就是网站上提供的免费片断《正则表达式的应用》中,讲到了将一个保存有ip地址与地区对照关系的文本文件导入到数据库时,应该将其中的某些空格替换成逗号(,),即对于如下格式的文本文件内容: 
    起始IP 结束IP 地区 
    --------------------------------------------------------------- 
    61.54.231.245 61.54.231.245 河南省安阳市 新世纪网吧 
    61.54.231.246 61.54.231.246 河南省安阳市 未知地区 
    61.54.231.9 61.54.231.247 河南省安阳市 红日网吧 
    61.54.231.248 61.54.231.248 河南省安阳市 安阳师范学院 
    61.54.231.249 61.54.231.249 河南省安阳市 黑蜘蛛网吧(师范学院附近) 
    应转换成下面的这种格式: 
    61.54.231.245,61.54.231.245,河南省安阳市 新世纪网吧 
    61.54.231.246,61.54.231.246,河南省安阳市 未知地区 
    61.54.231.247,61.54.231.247,河南省安阳市 红日网吧 
    61.54.231.248,61.54.231.248,河南省安阳市 安阳师范学院 
    61.54.231.249,61.54.231.249,河南省安阳市 黑蜘蛛网吧(师范学院附近) 在视频教程中,讲解了使用UltraEdit的正则表达式替换功能来完成上面的转换。从jdk1.4开始,Java语言中提供用于处理正则表达式的相关API类和方法,在jdk帮助文档中,查看String类的replaceAll方法,可以看到该方法就支持类似UltraEdit的正则表达式替换功能。 
    任务:阅读String.replaceAll方法的帮助,以及它提供的相关超链接,了解该方法的用法后,编写一个Java程序来自动实现上面的正则表达式替换,将a.txt(下载)替换后的结果保存到b.txt文件中。另外,我们在实现IT315网站的ip地区查询系统时,使用的是类似如下的sql语法: 
    select 地区 from ip表 where 用户ip>起始IP and 用户ip<结束ip 
    通过这条sql语句就可以查询出用户ip所对应的地区结果。由于用户ip与起始ip和结束ip的比较属于字符串比较,如果用户ip为9.1.1.1,那么它与61.54.231.245比较的结果就是前者大于后者,因为用户ip的第一个字符“9”大于61.54.231.245中的第一个字符“6”。 
    现在请你想出一种解决办法,让上面的sql语句能够返回正确结果。提示:将9.1.1.1变化成009.001.001.001后与061.054.231.245进行比较就可以了。 
    请按这种思路在你的程序中增加进行这种改变的正则表达式替换。注意,起始IP和结束IP的四个字段都有可能是1位、2位或3位数字,例如,61.5.23.1。 
    在源程序中,要对程序代码的功能进行注释说明,提交你编写的程序给我们时,请附带该程序的使用说明。