本帖最后由 石头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();
}
}
}
|
|