package com.test12;import java.io.*;
import java.util.*;
public class FileDemo {

public static void main(String[] arguments){
try{

/**
 * 
 */
File file=new File(arguments[0]);
if(file.isFile()){
System.out.println(arguments[0]+"wenjian");
System.out.println(file.canRead()?"kedu":"bukedu");
System.out.println(file.canWrite()?"kexie":"bukexie");
System.out.println(file.length()+"zijie");

}
else{
File[] files=file.listFiles();
ArrayList arraylist=new ArrayList();
for(int i=0;i<files.length;i++){
if(files[i].isDirectory())
System.out.println("["+files[i].getPath()+"]");

else{
arraylist.add(files[i]);
}
}
/**
 * 列出文件
 */
for(File f: arraylist)//这里为什么会出错,应该怎么写{
System.out.println(f.toString());
}
}



}catch(ArrayIndexOutOfBoundsException e){
System.out.println("using:as;fasdf");

}

}}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主截止到2008-06-18 21:58:36的汇总数据:
    发帖数:3
    结贴数:0
    结贴率: 0.00%
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    按样子修改红色部分试试。ArrayList<File> arraylist=new ArrayList<File>(); 
    for(int i=0;i <files.length;i++){ 
    if(files[i].isDirectory()) 
    System.out.println("["+files[i].getPath()+"]"); else{ 
    arraylist.add(files[i]); 


    /** 
    * 列出文件 
    */ 
    for(File f: arraylist)//这里为什么会出错,应该怎么写{ 
    System.out.println(f.toString()); 


      

  3.   

    本帖最后由 AWUSOFT 于 2008-06-19 10:04:56 编辑
      

  4.   

    lz用eclipse的时候ArrayList arraylist=new ArrayList();这句话前面会出现个警告符号,单击会有解决方案:为什么会提示这个警告?原因就是:arraylist.add(files[i]); 你向ArrayList中添加File类型的对象
      

  5.   

    ArrayList <File> arraylist=new ArrayList <File>(); 
    我本来有,但是老是提示出错说什么
    类型 ArrayList 不是通用的;不能使用参数 <File> 将它参数化
    我用的是 eclipse 3.2
      

  6.   

    是 eclipse 3.2
    JDK要1.5以后的.用MYECLIPSE6.0吧.
      

  7.   

    你的JDK是1.4的吧~?如果是的话就没有泛型,更不会有for(File f:arraylist)这样的写法,楼主以后提问的时候应该把错误信息写出来
      

  8.   

    那个1.5的增强FOR 循环,个人觉得最好不要用,局限比较大,而且可读性也不怎么样
      

  9.   

    是不是我的的IDE有问题,
    我看了也改了,还是有问题,
    “类型 ArrayList 不是通用的;不能使用参数 <File> 将它参数化 ”这是提示出现的错误
    我用的是 eclipse 3.2
      

  10.   


    你的JDK应该高于1.4才行的啊。
      

  11.   

      呵呵,ArrayList能存储File类型吗?
      

  12.   

    被解决了   来凑凑热闹
    for的新用法真没试过
      

  13.   


    看看你的jdk版本对不对?
      

  14.   

    JDK 1.5后..那个增强型的FOR,简直是.....个人觉得不好,容易误导人,而且也没什么实际用处
      

  15.   

    这个是for-each不好用,需要加泛型
    for(File f: (List<File>)arraylist){
    System.out.println(f.toString()); 

    不用for-each就不用泛型
    for(int i=0;i<arraylist.size();i++){
             System.out.println(arraylist.get(0)
     }
      

  16.   

    有高人知道 那个for-each 和 一般的for(;;)相比哪个效率高点?
      

  17.   

    for(File f: arraylist)//这里为什么会出错,应该怎么写{ 
    System.out.println(f.toString()); 


    这里并不知道 arraylist 里面放的是什么总之是一个Object
    应该这样写啊
    for(Object f: arraylist)//这里为什么会出错,应该怎么写{ 
    System.out.println(((File)f).toString());