这条句子-----for(File f1:f.listFiles()) ----看不懂????  请教各位老师...  出自方法 :  public void transmit(File f)throws IOException//这是传输的核心,而且将被递归
    {
        byte b[];
        String ts;
        int ti;
        for(File f1:f.listFiles())
        {   //首先通过if语句判断f1是文件还是文件夹                 
            if(f1.isDirectory()) //fi是文件夹,则向服务器端传送一条信息
            {
                ts="/]0f"+(f1.getPath().replace("g:\\dir\\",""));//"/]0f"用于表示这条信息的内容是文件夹名称
                b=ts.getBytes();
                dos.write(b);
                dos.flush();
                dis.read();
                transmit(f1);//由于f1是文件夹(即目录),所以它里面很有可能还有文件或者文件夹,所以进行递归
            }
            else 
            {
                fis=new FileInputStream(f1);
                ts="/]0c"+(f1.getPath().replace("g:\\dir\\",""));//同上,表示这是一个文件的名称
                b=ts.getBytes();
                dos.write(b);
                dos.flush();
                dis.read();
                dos.writeInt(fis.available());//传输一个整型值,指明将要传输的文件的大小
                dos.flush();
                dis.read();
                b=new byte[10000];
                while(fis.available()>0)//开始传送文件
                {
                     ti=fis.read(b);
                     dos.write(b,0,ti);
                     dos.flush();
                }
                dos.flush();
                fis.close();
                dis.read();
            }
        }
        
    }

解决方案 »

  1.   

    就是For Each循环
    JAVA 1.5的新特性相当于File[] files = f.listFiles();
    File f1= null;
    for(int i=0; i<files.length; i++){
    f1=files[i];
    ...

      

  2.   

    J2SE 1.5提供了另一种形式的for循环。 就是看f.listFiles() 有没有 file,有的话循环
      

  3.   

    等同于C#的foreach循环
     
      

  4.   

    http://www.xue5.com/itedu/200702/88161.html百度搜有很多资料
      

  5.   

    for(File f1:f.listFiles())  
    遍历f.listFiles()的元素
      

  6.   

    加强的for循环 找一个本java1.5新特性来看吧
      

  7.   

    楼主弄本解释jdk1.5新特性的书看看。
      

  8.   

    嗯,JAVA的新特性.你这样的:       int[] arr = {1 ,2 ,3 ,4 ,5};
    for(int i : arr){
    //在JDK5.0版本上新增加的
    System.out.println(i);
    }

    Collection c = new ArrayList();
    c.add(new String("aaaa"));
    c.add(new String("bbbb"));
    c.add(new String("cccc"));
    for(Object o : c){
    System.out.println(o);
    }
    这种方法有一个缺点,就是不能访问数据特定下标.
      

  9.   

    JDK1.5出的for循环新版本,遍历更好,但没法直接获得序号
      

  10.   

    递归呀!f 是对象,listFiles()是这个对象的一个方法,返回值为List
      

  11.   

    是增强for循环,可不是楼上说的“递归”啊……
      

  12.   

    谢了!!!另外while(fis.available()>0)这个循环条件何时不成立呀