Java编写一个程序,列出当前目录下所有文件和子目录的名称,并将它们保存在一个文本文件中。说明:对于子目录中的内容,也要递归地进行处理。
困扰了好几个小时,要将字符串写入txt文档中,一条一条目录写入,不能覆盖上一条,如果覆盖了等于没有存储。最终查到,只需在outputStream = new FileOutputStream(file2,true)中加一个参数true即可,最终成功解决!
package pack3;
import java.io.File;
import java.io.FileOutputStream;
public class list1 {
public static void getFile(File file){
if(file != null){
File[] f = file.listFiles();
if(f != null){
for(int i=0;i<f.length;i++){
getFile(f[i]);
}
}else{
System.out.println(file);
File file2 = new File("E:/桌面—s/1桌面s/1资源pa/read.txt");
FileOutputStream outputStream;
try {
outputStream = new FileOutputStream(file2,true);//加true这个参数防止覆盖文档之前的字符
outputStream.write(String.valueOf(file+"\n").getBytes());
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
String path = "E:/桌面—s/网络流量分析文档/";
//清空txt文件,不清空会重叠,如果不需要清空可删除这些代码
File file = new File("E:/桌面—s/1桌面s/1资源pa/read.txt");
FileOutputStream outputStream;
try {
outputStream = new FileOutputStream(file);
outputStream.write(" ".getBytes());
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("txt文件已清空,下面开始写入");
File f = new File(path);
list1.getFile(f);
System.out.println("所有文件目录已写入txt文档中!");
}
}
输出到文档: