A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 石头Haha 于 2015-7-22 15:02 编辑

第一段代码是正确输出的,当我把 流对象移入 for 循环以后(关闭流的动作自然一起也移入了),,结果只能输出第一个文件,这是怎么回事啊?,
不知道是不是因为关流的原因,,但是每次for循环不是重新创建的流对象吗???好纳闷啊,,第二段是没有得到想要结果的代码

还有第二个问题,在while循环里面加入的 转换大写  line.toUpperCase();好像也没有作用,,,好无解啊。。。。。。。。。。。。。。
**************************************
第一段:正确的代码

//接口类:FilenameFilter 文件名过滤器


public class FilenameFileterDemo {
        //筛选某一类文件
        public static void main(String[] args) throws IOException {
                // TODO 自动生成的方法存根

                String s = "abcde";                System.out.println(s.toUpperCase());   // 这里证明了转化大写没问题(这是第二个问题)
                File dir = new File("D:\\JAVA_Test - 副本");       //此处文件名改为您测试的文件夹
                File[] arr = dir.listFiles(new FilenameFilter() {
                        public boolean accept(File dir, String name) {
                                return name.endsWith(".txt");
                        }
                });
               
                BufferedReader bufr = null;
                BufferedWriter bufw = null;
                for(File file : arr) {
                        System.out.println(file.getName()+"***************************");
                         bufr = new BufferedReader(new FileReader(file));
                         bufw = new BufferedWriter(new OutputStreamWriter(System.out));
                        String line = null;
                        while((line=bufr.readLine())!=null) {
                       //          line.toUpperCase();                           //转化大写这一句好像也没有生效。。。。郁闷啊
                                bufw.write(line);
                                bufw.newLine();
                                bufw.flush();
                        }
                                
                }
                bufw.close();
                bufr.close();
        }
}

****************************************没有得到想要结果的代码

public class FilenameFileterDemo {


        //筛选某一类文件
        public static void main(String[] args) throws IOException {
                // TODO 自动生成的方法存根

                File dir = new File("D:\\JAVA_Test - 副本");
                File[] arr = dir.listFiles(new FilenameFilter() {
                        public boolean accept(File dir, String name) {
                                return name.endsWith(".txt");
                        }
                });
               
        //        BufferedReader bufr = null;
        //        BufferedWriter bufw = null;
                for(File file : arr) {
                        System.out.println(file.getName()+"***************************");
                        BufferedReader bufr = new BufferedReader(new FileReader(file));
                        BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
                        String line = null;
                        while((line=bufr.readLine())!=null) {
                                bufw.write(line);
                                bufw.newLine();
                                bufw.flush();
                        }
                                
                        bufw.close();
                        bufr.close();
                }
        }
}






0 个回复

您需要登录后才可以回帖 登录 | 加入黑马