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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

yl2012

初级黑马

  • 黑马币:0

  • 帖子:9

  • 精华:0

© yl2012 初级黑马   /  2012-5-15 04:04  /  1627 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

8 个回复

正序浏览
王杰 黑马帝 2012-5-16 09:09:44
9#
  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. }
复制代码
回复 使用道具 举报


{:soso_e179:}   
回复 使用道具 举报
薄炳鑫 发表于 2012-5-15 13:30
代码部分注释说明了修改方法

这次学习了, 开始的时候 把自己给套进去了。TRUE真好。
回复 使用道具 举报
哥们,你定的代码没有问题,是不是流动条没有脱呀,我都试过的。在我的机子上完全没有问题
回复 使用道具 举报
原来如此,谢谢楼上。
回复 使用道具 举报
代码部分注释说明了修改方法
  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
很奇怪,我建了一个很简单的文件夹:
D:\\a
a文件夹中有两个文本文件一个文件夹b
问题是:你的代码只能输出两个文本文件,没有文件夹的路径,不管b文件夹里有没有文件。
回复 使用道具 举报
你写入的文件怎么都是a.txt,你可以获取源文件的名字作为文件名
也可以创建一个文件夹,不创建在当前目录下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马