java IO流文件夹遍历!求指导

会编程的猩猩 2016-12-25 10:52:29
题目:键盘录入文件夹路径,把文件夹及其文件夹中的文件名字都打印到info.txt中,哪里错误了,给看看,谢谢!



package com.baidu;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;

public class Test03 {
public static void main(String[] args) throws IOException {
File file=getDir();
getFileName(file);
}

private static void getFileName(File file) throws IOException {
File[] subFiles = file.listFiles();
FileOutputStream fos=new FileOutputStream("info.txt");
for (File subFile : subFiles) {
fos.write(subFile.getName().getBytes());
fos.write("\r\n".getBytes());
fos.flush();
if(subFile.isDirectory()){
getFileName(subFile);
}
}
fos.close();
}

private static File getDir() {
Scanner sc=new Scanner(System.in);
System.out.println("请输入文件夹路径:");
while(true){
String line = sc.nextLine();
File file =new File(line);
if(!file.exists()){
System.out.println("文件夹不存在,请重新输入!");
}else if(file.isFile()){
System.out.println("输入的是文件路径,请重新输入!");
}else{
sc.close();
return file;
}
}
}
}



谁给看看
...全文
144 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
会编程的猩猩 2016-12-25
  • 打赏
  • 举报
回复
引用 1 楼 lcq118 的回复:
你应该是只能得到一部分文件名吧, FileOutputStream fos=new FileOutputStream("info.txt"); 改为: FileOutputStream fos=new FileOutputStream("info.txt",true); 这个表示追加的意思,否则就是覆盖
我擦,怎么把这事给忘了,谢谢,谢谢,搞了半天都感觉自己写对了,原来错在了这里。。。
逍遥的程序员 2016-12-25
  • 打赏
  • 举报
回复
你应该是只能得到一部分文件名吧, FileOutputStream fos=new FileOutputStream("info.txt"); 改为: FileOutputStream fos=new FileOutputStream("info.txt",true); 这个表示追加的意思,否则就是覆盖

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧