- package homework;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileWriter;
- import java.io.IOException;
- public class CopyJavaTest
- {
- public static void main(String[] args) throws IOException
- {
- //把一个目录下的所有.java结尾的文件路径存储到一个文件中,方便查找
- //D:\\useradmin
- //封装目录
- File file = new File("D:\\useradmin");
- //获取指定目录下的所有文件
- filePathList(file);
- }
-
- public static void filePathList(File file)
- {
- File[] fileArray = file.listFiles();
- BufferedWriter bw = null;
- //遍历得到每一个File对象
- for(File f : fileArray)
- {
- //判断File是否是文件
- if(f.isFile())//第一次判断
- { //判断File是否是以.java结尾的文件
- if(f.getAbsolutePath().endsWith(".java"))//第二次判断
- {
- try {
- //创建流对象
- bw = new BufferedWriter(new FileWriter("CopyJavaTest.txt",true));
- //把.java文件名写入CopyJavaTest.txt
- bw.write(f.getAbsolutePath());
- //换行
- bw.newLine();
- //刷新
- bw.flush();
-
- } catch (IOException e)
- {
- e.printStackTrace();
- }
- finally
- {
- //判断流对象在抛异常前是否创建成功
- if(bw != null)
- {
- try
- {
- bw.close();
- } catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- }
- }
- }else
- {
- //如果是文件夹就递归
- filePathList(f);
- }
- }
- }
- }
复制代码 为什么上面代码的分两次判断可以,写为一个判断就出错了
if(f.isFile())//第一次判断
if(f.getAbsolutePath().endsWith(".java"))//第二次判断
为什么这样写就出错?
if(f.isFile && f.getAbsolutePath().endsWith(".java"))
错误显示如下:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method filePathList(File, File[]) in the type CopyJavaTest is not applicable for the arguments (File)
|