黑马程序员技术交流社区
标题:
关于IO的问题
[打印本页]
作者:
yl2012
时间:
2012-5-15 04:04
标题:
关于IO的问题
本帖最后由 yl2012 于 2012-5-15 04:06 编辑
需求是,获取某目录下的文件,以文件的形式保存起来,代码如下,但是只能获取到部分文件,得不到正确结果,求帮忙修正代码,谢谢~
import java.io.*;
class Test
{
public static void main(String[] args) throws IOException
{
File dir = new File("F:\\code");
showDir(dir);
}
public static void showDir(File dir)throws IOException
{
File[] files = dir.listFiles();
BufferedWriter bufw = new BufferedWriter(new FileWriter("a.txt"));
for(File file : files)
{
if(file.isDirectory())
showDir(file);
else
{
bufw.write(file.toString());
bufw.newLine();
bufw.flush();
}
}
bufw.close();
}
}
复制代码
作者:
倪杭乘
时间:
2012-5-15 08:45
你写入的文件怎么都是a.txt,你可以获取源文件的名字作为文件名
也可以创建一个文件夹,不创建在当前目录下
作者:
高云飞
时间:
2012-5-15 10:49
很奇怪,我建了一个很简单的文件夹:
D:\\a
a文件夹中有两个文本文件一个文件夹b
问题是:你的代码只能输出两个文本文件,没有文件夹的路径,不管b文件夹里有没有文件。
作者:
薄炳鑫
时间:
2012-5-15 13:30
代码部分注释说明了修改方法
import java.io.*;
class Test
{
public static void main(String[] args) throws IOException
{
File dir = new File("F:\\code");
showDir(dir);
}
public static void showDir(File dir)throws IOException
{
File[] files = dir.listFiles();
//每次迭代到这里都要新建一个a.txt文件,把以前的文件都覆盖。
//修改为BufferedWriter bufw = new BufferedWriter(new FileWriter("a.txt",true));
BufferedWriter bufw = new BufferedWriter(new FileWriter("a.txt"));
for(File file : files)
{
if(file.isDirectory())
showDir(file);
else
{
bufw.write(file.toString());
bufw.newLine();
bufw.flush();
}
}
bufw.close();
}
}
复制代码
作者:
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
import java.io.*;
class IOTest
{
public static void main(String[] args) throws IOException
{
File dir = new File("F:\\javafile");
BufferedWriter bufw = new BufferedWriter(new FileWriter("a.txt"));
showDir(dir,bufw);
bufw.close();
}
public static void showDir(File dir,BufferedWriter out)throws IOException
{
File[] files = dir.listFiles();
for(File file : files)
{
if(file.isDirectory())
showDir(file,out);
else
{
out.write(file.toString());
out.newLine();
out.flush();
}
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2