黑马程序员技术交流社区
标题:
File有关的问题
[打印本页]
作者:
张龙欢
时间:
2013-5-25 22:57
标题:
File有关的问题
本帖最后由 张龙欢 于 2013-5-25 23:53 编辑
取出D:盘下全部的.java文件的文件路径保存在java.txt文件中要求:1.通过递归的方式遍历d:盘.判断文件的扩展名是否是以.java结尾.2,把符合条件的File对象都存入到集合中.3,遍历该集合.通过输出流把文件对象的getAbsolutePath写入到java.txt文件中.怎么做这题?哪位朋友麻烦指点下
作者:
画饼
时间:
2013-5-25 23:06
你要代码还是思路啊,你建立个File对象,传进路径你说的D盘,然后判断里面有文件或者目录没,如果有,得到里面所有的文件跟我文件夹 ,这是一个数组,然后遍历,逐一进去判读,如果得到的是目录,递归一次。如果不是,判断是不是。java文件结尾,是的话,加入集合!
作者:
曹睿翔
时间:
2013-5-25 23:08
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class JavaFileList {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File dir = new File("D:\\java");
List<File> list = new ArrayList<File>();
file2List(dir,list);
File f = new File(dir,"javaList.txt");
write2File(list,f.toString());
}
public static void file2List(File dir,List<File> list){
File[] arr = dir.listFiles();
for(File f: arr){
if(f.isDirectory()){
file2List(f,list);
}
else {
if(f.getName().endsWith(".java"))
list.add(f);
}
}
}
public static void write2File(List<File> list,String javaListFile)throws IOException{
BufferedWriter bw = null;
try{
bw = new BufferedWriter(new FileWriter(javaListFile));
for(File f:list){
String path = f.getAbsolutePath();
bw.write(path);
bw.newLine();
bw.flush();
}
}catch(IOException e){
throw e;
}
finally{
try{if(bw!=null)
bw.close();
}catch(IOException e){
throw e;
}
}
}
}
复制代码
以前写的,没加注释,有兴趣你加一些
作者:
袁梦希
时间:
2013-5-25 23:11
本帖最后由 袁梦希 于 2013-5-25 23:16 编辑
酱油~~{:soso_e100:}
作者:
张龙欢
时间:
2013-5-25 23:27
曹睿翔 发表于 2013-5-25 23:08
以前写的,没加注释,有兴趣你加一些
谢谢,曹老大!
作者:
萌小子
时间:
2013-5-25 23:41
本帖最后由 王盟盟 于 2013-5-25 23:44 编辑
直接给你代码吧
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
public class GetFileName {
/**
* 取出D:盘下全部的.java文件的文件路径保存在java.txt文件中要求:
* 1.通过递归的方式遍历d:盘.判断文件的扩展名是否是以.java结尾.
* 2,把符合条件的File对象都存入到集合中.
* 3,遍历该集合.通过输出流把文件对象的getAbsolutePath写入到java.txt文件中
*/
static ArrayList<File> fileList=null;//初始化list集合
FileOutputStream fos=null;//初始化文件输出流
public static void main(String[] args) {
fileList=new ArrayList<File>();//创建list集合
GetFileName obj=new GetFileName();
obj.getFile(new File("D:\\"));
obj.write2File();
}
//写入文件
public void write2File()
{
File dirFile=new File("d:\\java.txt");//创建目标文件
try {
fos=new FileOutputStream(dirFile);//创建文件输出流
//遍历集合
if(fileList.size()>0)
for(File file:fileList)
{
fos.write((file.getAbsolutePath()+"\r\n").getBytes());//写入文件
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//获取文件
public void getFile(File path)
{
System.out.println(path.getAbsolutePath());//打印出当前正在遍历的目录
File files[]=path.listFiles();//列出目录下所有文件、文件夹
if(files!=null&&files.length>0)
{
//遍历目录
for(File file:files)
{
if(file.isDirectory())
{
getFile(file);
}else
{
if(file.getName().endsWith("java"))//判断是否是java文件
fileList.add(file);//加入集合
}
}
}
}
}
复制代码
作者:
张龙欢
时间:
2013-5-25 23:51
王盟盟 发表于 2013-5-25 23:41
直接给你代码吧
谢谢,我什么时候才有你们这种功力啊!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2