黑马程序员技术交流社区

标题: 一个小程序,把一个文件夹所有.java的文件打印。 [打印本页]

作者: 孙浩迪    时间: 2012-6-17 18:14
标题: 一个小程序,把一个文件夹所有.java的文件打印。
本帖最后由 sunhaodi 于 2012-6-19 14:38 编辑

package day6;

import java.io.File;
import java.io.FilenameFilter;


public class Test {
  
         public static void main(String[] args) {
               
                 File dir  = new File("");
                 
             String dirString = dir.getAbsolutePath();
                 System.out.println(dirString);
                 
                Filter filter = new Filter(".java");
                dir = new File(dirString);
                File[] files=dir.listFiles(filter);
                for(int i=0;i<files.length;i++){
   
                          System.out.println(files.getName());
                        
               
                 
                }
                 
                 
        }
        
}

class Filter implements FilenameFilter{
        
    String FilterString;
    public Filter(String FilterString){
                    this.FilterString= FilterString;
                    
            
    }

        @Override
        public boolean accept(File dir, String name) {
                // TODO Auto-generated method stub
                return name.endsWith(FilterString);
        }
        
        
}

我这个是在网上找的方法, 也好使啊, 好多地方不明白, 实现的那个接口是干什么的, 还有,有没有其它方法能取一个文件夹的后缀.java文件啊

作者: 胡大强    时间: 2012-6-17 18:25
public class Kuozhanming {

        public static void main(String[] args) {
                String FileName = "123.txt";
                String KzmName = FileName.substring(FileName.lastIndexOf("."));
                System.out.print(KzmName);
        }
}
/*这是获得文件后缀名的方法之一。。。。还有一种方法,就是字符串的分割,用split("\\."),即用点来分割,然后输出整个字符串长度length-1位置的字符串。这个字符串也就是扩展名后缀。*/
作者: 孙浩迪    时间: 2012-6-17 20:18
胡大强 发表于 2012-6-17 18:25
public class Kuozhanming {

        public static void main(String[] args) {

这样我知道, 比如我要打印D盘里的所有.java文件怎么搞啊?


作者: 杨朔    时间: 2012-6-17 20:31
File[]files=file.listFiles();
File java=new File(file.getAbsolutPath()+"\java");
for(int i=0;i<files.length;i++){
if(files[i].getAbsolutpath().endsWith(".java"))
   File javaFile=new File(files[i].getAbsolutPath())
}
作者: 胡大强    时间: 2012-6-17 22:29
sunhaodi 发表于 2012-6-17 20:18
这样我知道, 比如我要打印D盘里的所有.java文件怎么搞啊?

import java.io.*;
class ReadFile
{
        public static void main(String[] args)
        {
                File f=new File("D:\\123.txt");  //D盘下面的123.txt文件
                try{
                        FileReader fr=new FileReader(f);
                        BufferedReader br=new BufferedReader(fr);
                        try{
                                String line=br.readLine();
                                while(line!=null){
                                        System.out.println(line);
                                        line=br.readLine();
                                }
                        }catch (IOException e){
                                e.printStackTrace();
                        }
                }catch(FileNotFoundException e){
                                e.printStackTrace();
                        }
        }
}
///打印一个文件。。。至于多个。。。这个有待研究。。。。多谢楼主的分享啊,,很不错。。由一个问题引出一些列问题 ,好问题啊。
作者: 孙安庆    时间: 2012-6-18 00:57
  1. import java.io.*;
  2. class test1
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 listDemo();
  7.         }
  8.         public static void listDemo()
  9.         {
  10.                
  11.                 File f=new File(".");//当前路径下
  12.                 String[] names=f.list(new FilenameFilter(){//匿名内部类   
  13.                         public boolean accept(File dir, String name)
  14.                         {
  15.                                 return name.endsWith("java") || new File(name).isDirectory();
  16.                         }
  17.                 });

  18.                 for (String name:names )
  19.                 {
  20.                         System.out.println(name);
  21.                 }
  22.         }
  23. }
复制代码
主要是File类中的public String[] list(FilenameFilter filter)函数
FilenameFilter这个接口是用来定义一个判断规则,其中的accept()方法封装了过滤文件名的代码块,指定了哪些文件可以被list方法列出来





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