黑马程序员技术交流社区

标题: 求高人帮我看下到底哪错了 [打印本页]

作者: 系磊    时间: 2012-6-18 22:38
标题: 求高人帮我看下到底哪错了
这是我按照老师讲课写的一个代码实在是不知道怎么错了,以下是代码跟错误提示
import java.io.*;
import java.util.*;
class JavaFileList
{
        public static void main(String[] args)throws IOException
        {
                File dir = new File("f:\\java");

                List<File> list = new ArrayList<File>();

                fileToList(dir,list);

                //System.out.println(list.size());

                File file = new File(dir,"javalist.txt");

                writeToFile(list,file.toString());
        }
        public static void fileToList(File dir,List<File> list)
        {
                File[] files = dir.listFiles();
                for(File file:files)
                {
                        if(file.isDirectory())
                                fileToList(file,list);
                        else
                        {
                                if(file.getName().endsWith(".java"))
                                        list.add(file);
                        }
                }
        }
        public static void writeToFile(List<File>list)
        {
                BufferedWriter bufw = null;
                try
                {
                        bufw = new BufferedWriter(new FileWriter(javaListFile));
                        for(File f : list)
                        {
                                String path = f.getAbsolutePath();
                                bufw.write(path);
                                bufw.newLine();
                                bufw.flush();
                        }
                }
                catch(IOException e)
                {
                        throw e;
                }
                finally
                {
                        try
                        {
                                if(bufw!=null)
                                bufw.close();
                        }
                        catch (IOException e)
                        {
                                throw e;
                        }
                }
        }
}

作者: 系磊    时间: 2012-6-18 22:41
C:\Documents and Settings\Administrator\桌面\新建文件夹
作者: 系磊    时间: 2012-6-18 22:43
图片怎么传不上来呢

作者: 系磊    时间: 2012-6-18 22:54
无法将类 JavaFileLis t中的方法 writerToFile 应用到给定类型;
writeToFile(list,file.toString());
需要:List<File>
找到:List<File>,String
原因:实际参数列表和形式参数列表长度不同
找不到符号:bufw = new BufferedWrite(new FileWriter(javaListFile));
作者: 李文龙    时间: 2012-6-18 22:55
我刚运行了一下,程序报错有两个,一个是    writeToFile(list,file.toString());  你的参数列表和你下边写的不一致,第二个是  bufw = new BufferedWriter(new FileWriter(javaListFile));  系统报错,找不到变量名      仔细检查程序,认真看每一行代码,你确定你都搞懂代码的意思了么
作者: 系磊    时间: 2012-6-18 22:59
李文龙 发表于 2012-6-18 22:55
我刚运行了一下,程序报错有两个,一个是    writeToFile(list,file.toString());  你的参数列表和你下边写 ...

我知道是这2个错误啊,帮我改下啊,我实在是找不到,才接触java 菜鸟的很
作者: 余银桂    时间: 2012-6-18 23:07
  1. import java.io.*;
  2. import java.util.*;
  3. class Test
  4. {
  5.         public static void main(String[] args)throws IOException
  6.         {
  7.                 File dir = new File("f:\\java");

  8.                List<File> list = new ArrayList<File>();

  9.                fileToList(dir,list);

  10.                //System.out.println(list.size());

  11.                File file = new File(dir,"javalist.txt");

  12.                writeToFile(list);
  13.         }
  14.         public static void fileToList(File dir,List<File> list)
  15.         {
  16.                 File[] files = dir.listFiles();
  17.                 for(File file:files)
  18.                 {
  19.                         if(file.isDirectory())
  20.                                 fileToList(file,list);
  21.                         else
  22.                         {
  23.                                 if(file.getName().endsWith(".java"))
  24.                                         list.add(file);
  25.                         }
  26.                 }
  27.         }
  28.        public static void writeToFile(List<File>list)
  29.        {
  30.                 BufferedWriter bufw = null;
  31.                 try
  32.                 {
  33.                         bufw = new BufferedWriter(new FileWriter("文件路径"));
  34.                         for(File f : list)
  35.                         {
  36.                                 String path = f.getAbsolutePath();
  37.                                 bufw.write(path);
  38.                                 bufw.newLine();
  39.                                 bufw.flush();
  40.                         }
  41.                 }
  42.                 catch(IOException e)
  43.                 {
  44.                         e.printStackTrace();
  45.                 }
  46.                 finally
  47.                 {
  48.                         try
  49.                         {
  50.                                 if(bufw!=null)
  51.                                 bufw.close();
  52.                         }
  53.                         catch (IOException e)
  54.                         {
  55.                                 e.printStackTrace();
  56.                         }
  57.                 }
  58.         }
  59. }
复制代码

作者: 李文龙    时间: 2012-6-18 23:13
writeToFile(list,file.toString());  改为writeToFile(list);
bufw = new BufferedWrite(new FileWriter(javaListFile));  改为bufw = new BufferedWrite(new FileWriter("f:\\java"));  
这样就可以了,不过 throw e;报错了,你改为   System.out.println(e);  
作者: 系磊    时间: 2012-6-18 23:19
谢了 才学java很多都不懂
作者: 周星星    时间: 2012-6-19 11:07
writeToFile(list,file.toString());
  public static void writeToFile(List<File>list)
前面方法参数个数不同
   bufw = new BufferedWriter(new FileWriter(javaListFile));
javaListFile这个变量都没定义




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2