本帖最后由 张向辉 于 2013-1-27 17:38 编辑
同学们,大家在看毕老师视频的时候有没有发现如下的一个问题?
视频地址为:黑马程序员_毕向东_Java基础视频教程第20天-10-IO流(创建java文件列表)
课程代码:- /*
- 练习
- 将一个指定目录下的java文件的绝对路径,存储到一个文本文件中。
- 建立一个java文件列表文件。
- 思路:
- 1,对指定的目录进行递归。
- 2,获取递归过程所以的java文件的路径。
- 3,将这些路径存储到集合中。
- 4,将集合中的数据写入到一个文件中。
- */
- import java.io.*;
- import java.util.*;
- class JavaFileList
- {
- public static void main(String[] args) throws IOException
- {
-
- File dir = new File("d:\\demo"); //运行结果正确,如下图2,毕老师的正确结果是图1
- File dir = new File("d:\\"); //运行结果错误,如下图3 (说明:这两句代码运行时只选择一句运行)
- 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,String javaListFile)throws IOException
- {
- 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;
- }
- }
- }
- }
复制代码 运行结果附图1、2、3如下:
问题是为什么会出现空指针异常?D盘下的demo文件可以,可是demo文件属于D盘,但是遍历D盘就不行呢?求高手解答
|
-
1.png
(283.83 KB, 下载次数: 33)
-
2.png
(290.38 KB, 下载次数: 26)
-
3.png
(172.88 KB, 下载次数: 27)
|