Java 文件流操作
版本
😃version 1.0.0
问题简介
😃浏览指定目录下所有的文件,并且以比较清晰的形式输出在控制台。
实现想法简介
😃递归实现
function1
😃只显示文件名及其扩展名
function2
😃显示完整的文件名及其路径
代码介绍
所使用的包
// 导包
import java.io.File;
import java.util.Scanner;
public static void main(String[] args)
public static void main(String[] args) {
Scanner console = new Scanner(System.in); // 创建输入流
System.out.print("Please enter the directory you want to browse(Tips:'\\\\'):"); // 提示输入内容
String s = console.nextLine(); // 路径
File f = new File(s); // 打开文件
if (f.isDirectory()) { // 输入符合
System.out.println("Directory Browsing (" + f + "):"); // 提示
function1(f, "");
// function2(f, "");
} else { // 输入不符合
System.out.println("ERROR!Please check the directory you entered!");
}
}
public static void function1(File f, String id)
/*
不包含绝对路径以文件树的形式显示目录内所有内容
【FILE】:表示文件
【FOLDER】:表示文件夹
缩进以'\t'表示同目录文件
*/
public static void function1(File f, String id) {
String[] list = f.list();
id += " "; // id每次递归增加" "
for (String s : list) { // 增强for循环
File f1 = new File(f, "\\" + s); // 转化成文件
if (f1.isFile()) { // 判断是否是文件 - 增加标识更加清晰
System.out.println(id + "【FILE】" + s); // 【FILE】是标识 - 文件
} else { // 如果不是文件,则递归实现显示目录内的内容
System.out.println(id + "【FOLDER】" + s); // 【FOLDER】是标识 - 文件夹
function1(f1, id); // 递归
}
}
}
public static void function2(File f, String id)
/*
包含绝对路径以文件树的形式显示目录内所有内容
【FILE】:表示文件
【FOLDER】:表示文件夹
缩进以'\t'表示同目录文件
*/
public static void function2(File f, String id) {
File[] files = f.listFiles();
id += " "; // id每次递归增加" "
for(File e : files) { // 增强for循环
if(e.isFile()) { // 判断是否是文件 - 增加标识更加清晰
System.out.println(id + "【FILE】" + e); // 【FILE】是标识 - 文件
} else { // 如果不是文件,则递归实现显示目录内的内容
System.out.println(id + "【FOLDER】" + e); // 【FOLDER】是标识 - 文件夹
function2(e, id); // 递归
}
}
}
实现效果
测试目录内容浏览
路径:"C:\Users\Kind\Desktop\TestFile"
TestFile内容: Test01 | Test02 | demo01.txt | img.jpg | MarkDemo.md
Test01内容: demo.xlsl | test.docx | Test05
Test05内容: demo05,txt
Test02内容: Test03 | demo02.txt
Test03内容: demo.bmp | demo03.txt | Test04
Test04内容: demo04.txt
代码实现效果(函数function1)
Please enter the directory you want to browse(Tips:'\\'):C:\\Users\\Kind\\Desktop\\TestFile
Directory Browsing (C:\Users\Kind\Desktop\TestFile):
【FILE】demo01.txt
【FILE】img.jpg
【FILE】MarkDemo.md
【FOLDER】Test01
【FILE】demo.xlsx
【FILE】test.docx
【FOLDER】Test05
【FILE】demo05.txt
【FOLDER】Test02
【FILE】demo02.txt
【FOLDER】Test03
【FILE】demo.bmp
【FILE】demo03.txt
【FOLDER】Test04
【FILE】demo04.txt
代码实现效果(函数function2)
Please enter the directory you want to browse(Tips:'\\'):C:\\Users\\Kind\\Desktop\\TestFile
Directory Browsing (C:\Users\Kind\Desktop\TestFile):
【FILE】C:\Users\Kind\Desktop\TestFile\demo01.txt
【FILE】C:\Users\Kind\Desktop\TestFile\img.jpg
【FILE】C:\Users\Kind\Desktop\TestFile\MarkDemo.md
【FOLDER】C:\Users\Kind\Desktop\TestFile\Test01
【FILE】C:\Users\Kind\Desktop\TestFile\Test01\demo.xlsx
【FILE】C:\Users\Kind\Desktop\TestFile\Test01\test.docx
【FOLDER】C:\Users\Kind\Desktop\TestFile\Test01\Test05
【FILE】C:\Users\Kind\Desktop\TestFile\Test01\Test05\demo05.txt
【FOLDER】C:\Users\Kind\Desktop\TestFile\Test02
【FILE】C:\Users\Kind\Desktop\TestFile\Test02\demo02.txt
【FOLDER】C:\Users\Kind\Desktop\TestFile\Test02\Test03
【FILE】C:\Users\Kind\Desktop\TestFile\Test02\Test03\demo.bmp
【FILE】C:\Users\Kind\Desktop\TestFile\Test02\Test03\demo03.txt
【FOLDER】C:\Users\Kind\Desktop\TestFile\Test02\Test03\Test04
【FILE】C:\Users\Kind\Desktop\TestFile\Test02\Test03\Test04\demo04.txt
编者留言
😃代码还存在一定的问题(还有一些问题未考虑,在未来的版本中会解决),本文章可以简单帮助读者对于文件流的学习
完整代码
import java.io.File;
import java.util.Scanner;
/**
* @version 1.0.0
* @title FileDemo01
* @auther Einstein
**/
public class FileDemo01 {
public static void main(String[] args) {
Scanner console = new Scanner(System.in); // 创建输入流
System.out.print("Please enter the directory you want to browse(Tips:'\\\\'):"); // 提示输入内容
String s = console.nextLine(); // 路径
File f = new File(s); // 打开文件
if (f.isDirectory()) { // 输入符合
System.out.println("Directory Browsing (" + f + "):"); // 提示
function1(f, "");
// function2(f, "");
} else { // 输入不符合
System.out.println("ERROR!Please check the directory you entered!");
}
}
public static void function1(File f, String id) {
String[] list = f.list();
id += " "; // id每次递归增加\t
for (String s : list) { // 增强for循环
File f1 = new File(f, "\\" + s); // 转化成文件
if (f1.isFile()) { // 判断是否是文件 - 增加标识更加清晰
System.out.println(id + "【FILE】" + s); // 【FILE】是标识 - 文件
} else { // 如果不是文件,则递归实现显示目录内的内容
System.out.println(id + "【FOLDER】" + s); // 【FOLDER】是标识 - 文件夹
function1(f1, id); // 递归
}
}
}
public static void function2(File f, String id) {
File[] files = f.listFiles();
id += " "; // id每次递归增加" "
for(File e : files) { // 增强for循环
if(e.isFile()) { // 判断是否是文件 - 增加标识更加清晰
System.out.println(id + "【FILE】" + e); // 【FILE】是标识 - 文件
} else { // 如果不是文件,则递归实现显示目录内的内容
System.out.println(id + "【FOLDER】" + e); // 【FOLDER】是标识 - 文件夹
function2(e, id); // 递归
}
}
}
}