本帖最后由 duoshanx 于 2011-08-30 21:04:10 编辑

解决方案 »

  1.   

    因为你把所有内容都放在一个字符串里了,这个字符串不会以}开头使用 String[] sd = s.split("\\}");即可。注意转义。
      

  2.   


    public static void main(String[] args)throws Exception {
    File f = new File("1.txt");
            byte[] b = new byte[(int) f.length()];
            FileInputStream fi = new FileInputStream(f);
            fi.read(b);
            String s = new String(b);
            String[] sd = s.split("(?m)^\\s*}$");
            System.out.println(sd.length);
            for(int i=0;i<sd.length;i++){
             System.out.println(sd[i]);
             System.out.println("----------------------");
            }
    }
      

  3.   

    String[] sd = s.split("(?m)^\\}$");
    如果分割符里,不写(?m),可以在java里设定多行模式。
    String[] sd =Pattern.compile("^\\}$",Pattern.MULTILINE).split(s); 
    from javadoc