文件名:201001.txt 文件内容: 
--------20100101-------- 
number: 7 
size: 12K      /usr/lzq/2010/01/01 
--------20100102-------- 
number: 0 
size: 4.0K      /usr/lzq/2010/01/02 
怎么取出number:7中的个数7和size:12K中的12写到Excel中指定的单元格?

解决方案 »

  1.   

    按行读,正则最好。
    不行就if   startsWith(“number:”,then substring剩下的trim得到7
    if startsWith size:,then substring  size:和K的index,得到12
      

  2.   

    import java.io.*;
    import java.util.ArrayList;
    import java.util.List;import javax.naming.spi.DirStateFactory.Result;public class FileOperator {
    public static void main(String[] args){
    File file = new File("D:/Documents and Settings/li/Workspaces/MyEclipse 8.x/Excel/src/201001.txt");
    if(!file.exists()){
    System.out.println("对不起此文件不存在!");
    }
    //StringBufferedReader result = new StringBufferedReader();
    BufferedReader reader = null;
    StringBuffer sb = new StringBuffer(" ");
    try{
    reader = new BufferedReader(new FileReader(file));
    String s = null;
    while((s =reader.readLine())!=null){
    sb.append(s+"\n");
    }
    }catch(IOException e){
    e.printStackTrace();
    }
    //if  startsWith(“number:”,then substring剩下的trim得到7 
    //if startsWith size:,then substring  size:和K的index,得到12
    if  (sb.toString().startsWith("number:")){
    String r= sb.substring(start);
    System.out.println(1);
    }
    //System.out.println(sb.toString());

    }
    }
    怎么按你说的方法写啊?谢谢
      

  3.   

    不应该这样判断,注意sb是StringBuffer,sb是整个文本内容,而不是每行的内容。
    if  (sb.toString().startsWith("number:")){
    String r= sb.substring(start);
    System.out.println(1);

    sb.toString().startsWith("number:")应该在while里面判断,且应该为s.startsWith("number:")取7跟12的值可以这样:
    if(s.startsWith("number:")){
      String[] ss=s.split(":");
      System.out.println(ss[1].trim());// 取7值
    }
    else if(if(s.startsWith("size:")){
      String[] ss=s.split(":");
      index k=ss[1].indexOf("K");  //取出第一个K位置
      String a=ss[1].substring(0,k).trim();//取出第一个K前面的值
    })