黑马程序员技术交流社区

标题: 关于IO的问题 [打印本页]

作者: yl2012    时间: 2012-5-15 04:04
标题: 关于IO的问题
本帖最后由 yl2012 于 2012-5-15 04:06 编辑

需求是,获取某目录下的文件,以文件的形式保存起来,代码如下,但是只能获取到部分文件,得不到正确结果,求帮忙修正代码,谢谢~
  1. import java.io.*;

  2. class Test
  3. {
  4.         public static void main(String[] args) throws IOException
  5.         {
  6.                 File dir = new File("F:\\code");

  7.                 showDir(dir);
  8.         }

  9.         public static void showDir(File dir)throws IOException
  10.         {

  11.                 File[] files = dir.listFiles();
  12.                
  13.                 BufferedWriter bufw = new BufferedWriter(new FileWriter("a.txt"));

  14.                 for(File file : files)
  15.                 {
  16.                         if(file.isDirectory())
  17.                                 showDir(file);
  18.                         else
  19.                         {
  20.                                 bufw.write(file.toString());
  21.                                 bufw.newLine();
  22.                                 bufw.flush();
  23.                         }
  24.                 }

  25.                 bufw.close();
  26.         }
  27. }
复制代码

作者: 倪杭乘    时间: 2012-5-15 08:45
你写入的文件怎么都是a.txt,你可以获取源文件的名字作为文件名
也可以创建一个文件夹,不创建在当前目录下
作者: 高云飞    时间: 2012-5-15 10:49
很奇怪,我建了一个很简单的文件夹:
D:\\a
a文件夹中有两个文本文件一个文件夹b
问题是:你的代码只能输出两个文本文件,没有文件夹的路径,不管b文件夹里有没有文件。
作者: 薄炳鑫    时间: 2012-5-15 13:30
代码部分注释说明了修改方法
  1. import java.io.*;

  2. class Test
  3. {
  4.         public static void main(String[] args) throws IOException
  5.         {
  6.                 File dir = new File("F:\\code");

  7.                 showDir(dir);
  8.         }

  9.         public static void showDir(File dir)throws IOException
  10.         {

  11.                 File[] files = dir.listFiles();
  12.                 //每次迭代到这里都要新建一个a.txt文件,把以前的文件都覆盖。
  13.                 //修改为BufferedWriter bufw = new BufferedWriter(new FileWriter("a.txt",true));
  14.                 BufferedWriter bufw = new BufferedWriter(new FileWriter("a.txt"));
  15.                
  16.                 for(File file : files)
  17.                 {
  18.                         if(file.isDirectory())
  19.                                 showDir(file);
  20.                         else
  21.                         {
  22.                                 bufw.write(file.toString());
  23.                                 bufw.newLine();
  24.                                 bufw.flush();
  25.                         }
  26.                 }

  27.                 bufw.close();
  28.         }
  29. }
复制代码

作者: yl2012    时间: 2012-5-15 16:12
原来如此,谢谢楼上。
作者: 刘_浩    时间: 2012-5-15 22:45
哥们,你定的代码没有问题,是不是流动条没有脱呀,我都试过的。在我的机子上完全没有问题
作者: 刘_浩    时间: 2012-5-15 22:58
薄炳鑫 发表于 2012-5-15 13:30
代码部分注释说明了修改方法

这次学习了, 开始的时候 把自己给套进去了。TRUE真好。
作者: Fc10232    时间: 2012-5-15 23:42


{:soso_e179:}   
作者: 王杰    时间: 2012-5-16 09:09
  1. import java.io.*;


  2. class IOTest

  3. {

  4.         public static void main(String[] args) throws IOException

  5.         {

  6.                 File dir = new File("F:\\javafile");
  7.                                 BufferedWriter bufw = new BufferedWriter(new FileWriter("a.txt"));

  8.                 showDir(dir,bufw);
  9.                                 bufw.close();

  10.         }


  11.         public static void showDir(File dir,BufferedWriter out)throws IOException

  12.         {


  13.                 File[] files = dir.listFiles();

  14.                
  15.                


  16.                 for(File file : files)

  17.                 {

  18.                         if(file.isDirectory())

  19.                                 showDir(file,out);

  20.                         else

  21.                         {

  22.                                 out.write(file.toString());

  23.                                 out.newLine();

  24.                                 out.flush();

  25.                         }

  26.                 }

  27.         }

  28. }
复制代码





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