以前java 还什么都不懂,能把硬盘文件输入到控制台上,然后,慢慢学,到现在,终于实现了,在桌面创建.txt文件,然后把硬盘上的 文件名字全部都输入到.txt文件里边,效果类似:
这样,跑完这个小程序,管你是老司机还是新司机,什么文件夹下边的日语学习,摇杆驱动,家教老师都该现形了:
package com.it.IO;
import java.io.*;
//import java.util.LinkedList;
//import java.util.List;
import java.util.*;
public class Doc {
public File file=get();//获得.txt文件
static List<String>list=new LinkedList<>();//创建list集合,用来暂时储存
public static File get()
{
File file=new File("C:\\Users\\Sky\\Desktop\\Doc.txt");//创建的.txt问价的位置
if(file.exists())//如果已经存在了
file.delete();//删除之
else
{
try
{
file.createNewFile();//如果不存在,就创建一个
}
catch(IOException e)
{
e.printStackTrace();
}
}
return file;
}
public static void main(String args[])
{
long startTime= System.currentTimeMillis();//获取程序开始时间
String fileName="D:"+File.separator;//表示待查询的为D盘
File f=new File(fileName);//实例化对象
print(f);//打印
write(list);//写到.txt文件内
long endTime=System.currentTimeMillis();//获取程序结束时间
System.out.println("程序一共执行了"+(endTime-startTime)+"毫秒!");
}
private static void write(List<String> list) {
// TODO Auto-generated method stub
File file=get();
try {
FileWriter writer = new FileWriter(file);
for(int i=0;i<list.size();i++)
{
String str=list.get(i);
writer.write(str);//写入.txt文件内
writer.write("\r\n");
}
writer.close();//关闭流
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void print(File f) {
// TODO Auto-generated method stub
if(f!=null)//如果当前文件不为空
{
if(f.isDirectory())//如果当前文件是个文件夹
{
//String Name= f.getAbsolutePath();//输出文件夹名字
//list.add("++++++++"+Name+"++++++++++++++");
File[] fileArray = f.listFiles();//获取当前文件夹的子文件
if(fileArray!=null)//
{
for(int i=0;i<fileArray.length;i++)
{
print(fileArray[i]);//递归子文件
}
}
}
else
{
String name=f.getAbsolutePath();//如果当前这个不是文件夹
list.add(name);//获取抽象路径名的绝对路径名字符串,存入list数组里边
}
}
}
}
不过 由于我D盘下边文件比较多,程序跑了大概两分多。
年轻人好好写代码 ,不要沉迷日语学习。