1.编程实现:输出C盘下的所有文件夹和文件
package com.gduf.dataStructure.sort;
import java.io.File;
public class FileTest {
//打印file指定路径下的所有文件夹名
public static void printFolder(File file)
{
File[] files = file.listFiles();
for(File f : files)
{
if(f.isDirectory())
{
System.out.println(" " + f.getName());
}
}
}
//打印file指定路径下的所有文件名
public static void printFile(File file)
{
File[] files = file.listFiles();
for(File f : files)
{
if(f.isFile())
{
System.out.println(" " + f.getName());
}
}
}
//用递归实现:打印file目录下的所有文件和文件夹
public static void printAll(File file)
{
if(!file.isDirectory())
{
System.out.println("该File对象不是目录");
return ;
}
//递归出口:当传入的目录为空目录时返回
if(file.listFiles().length == 0)
{
return ;
}
System.out.println(file.toString() + "->");
printFolder(file);
printFile(file);
System.out.println("--------");
File[] files = file.listFiles();
for(int i = 0; i < files.length; i++)
{
//是文件就跳过
if(!files[i].isDirectory())
{
continue;
}
//如果是目录就递归
printAll(files[i]);
}
}
public static void main(String args[])
{
File file = new File("F:\\项目\\历史\\PS高手之路");
printAll(file);
}
}
注意:File对象的getName()和toString()方法是不同的。getName()方法只返回文件名或文件夹名,但不包含路径。而toString()方法则返回包含路径名的文件信息。
2.编程实现:输入一个对象,得到这个对象所属类实现的所有方法并输出。
package com.gduf.dataStructure.sort;
import java.lang.reflect.Method;
import com.gduf.dataStructure.list.LinList;
public class ReflestTest {
public static void getAllMethods(Object obj)
{
Class<?> objClass = obj.getClass();
Method[] methods = objClass.getDeclaredMethods();
for(Method method : methods)
{
System.out.println(method.toString() + " ");
}
}
public static void main(String args[])
{
LinList list = new LinList();
getAllMethods(list);
}
}