黑马程序员技术交流社区
标题:
IO的问题,为什么直接写D:不行
[打印本页]
作者:
xiaoyi
时间:
2015-1-13 17:39
标题:
IO的问题,为什么直接写D:不行
<p>/*</p><p>题目:将一个指定目录下的java文件的绝对路径,存储到一个shuoming.txt中,建立一个java文件列表文件。</p><p>思路:1,对指定的目录进行递归。(当我把目录直接写为 D: 时有错误,改为 D:\\JAVA 时无错误)
2,获取递归过程所以的java文件的路径。
3,将这些路径存储到集合中。
4,将集合中的数据写入到一个文件中。</p><p>注:我的D盘里只有D:\\JAVA 中有.java文件 分别在day01到day20文件夹中</p><p>当我把目录直接写为 D: 时 shuoming.txt中只有 day20文件夹中的.java文件,</p><p> 改为 D:\\JAVA 时所有文件都有。</p><p>*/</p><p>//求大神解释一下啊</p><p>
</p><p>import java.io.*;
import java.util.*;
class JavaFileList
{
public static void main(String[] args)throws IOException
{
File f=new File("D:");
List<File> list=new ArrayList<File>();
fileToList(f,list);
File shuoming=new File("D:\\JAVA","shuoming.txt");
sop(shuoming.createNewFile());
writeToTxt(list,shuoming);
}
public static void fileToList(File dir,List<File> list)
{
File[] name=dir.listFiles();
for(File file : name)
{
if(file.isDirectory())
fileToList(file,list);
else
{
if(file.getName().endsWith(".java"))
list.add(file);
}
}
}
public static void writeToTxt(List<File> list,File shuoming)
{
BufferedWriter buw=null;
try
{
buw=new BufferedWriter(new FileWriter(shuoming));
for(File f:list)
{
String s=f.getAbsolutePath();
buw.write(s);
buw.newLine();
buw.flush();
}
}
catch(IOException e)
{
sop("写入失败");
}
finally
{
try
{
if(buw!=null)
buw.close();
}
catch(IOException e1)
{
sop("关闭资源失败");
}
}
}
public static void sop(Object o)
{
System.out.println(o);
}
}</p>
复制代码
作者:
jant60
时间:
2015-1-13 17:42
学习一下,不太懂这个
作者:
xiaoyi
时间:
2015-1-13 17:42
擦,第一次发代码前面怎么是这个样子 各种 </p> 我也是醉了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2