package cz.bxg.demo12.demo11;
import java.io.File;
import java.util.Scanner;
public class DemoUploadFile {
public static void main(String[] args) {
//需求:模拟用户上传头像的功能,假设所有的用户头像都上传到: 项目下的lib文件中
//1.定义一个方法:用来获取要上传的用户头像的路径 getPath();
File path = getPath();//直接调用getPath 返回的是一个File对象 C:\Users\84891\Desktop\link.jpg
System.out.println(path);
//2.定义一个方法:用来判断要上传的用户头像,在lib文件夹中是否存在
boolean flag = isExists(path.getName());
if (flag) {
//3.如果存在,提示该用户头像已经存在,长传失败
System.out.println("该用户头像已经存在,上传失败");
} else {
//4.如果不存在,就上传该用户头像,并且提示上传成功,
System.out.println("准备开始上传");
}
;
}
//1.定义一个方法:用来获取要上传的用户头像的路径 getPath();
/**
* 用来获取要上传的用户头像的路径
*
* @return 具体的要上传的用户头像的路径
*/
public static File getPath() {
//1.提示用户录入要上传的用户头像路径,并接收
Scanner scc = new Scanner(System.in);// 用于接收的功能 创建一个扫描仪 用户键盘输入
while (true) {
System.out.println("请您录入您要上传的用户头像的路径 ");
//接收用户上传的路径
String path = scc.nextLine();
//2.判断该路径的后缀名是否是.jpg .png .bmp
//3.如果不是,就提示:您录入的不是图片,请重新录入
if (!path.endsWith(".jpg") && !path.endsWith(".png") && !path.endsWith(".bmp")) {//path.endWish 意思是以什么什么结尾 / 前面加叹号! 意思变为否定 不是以什么结尾
System.out.println("您录入的不是图片,请重新录入");
continue;//如果不是图片就一直循环if语句 直到判断是图片之后再执行下面程序
}
//4、如果是,程序接着执行,判断路径是否存在,并且是否是文件
File file = new File(path);//封装
//5.如果不是,就提示,您录入的路径不合法,请重新录入
if (file.exists()/*说明他存在*/ && file.isFile()/*说明是个文件*/) {
//6.如果是,说明就是我们想要的数据(文件,图片)直接返回
return file;//返回对象file
} else {//否则
System.out.println("您录入的路径不合法,请重新录入");//输出
}
}
}
//2.定义一个方法:用来判断要上传的用户头像,在lib文件夹中是否存在
public static boolean/*布尔值来判断*/isExists/*是否存在*/(/*带入一个文件名进行判断*/String path) {//文件名
//1.将lib文件夹封装成file对象
File file = new File("lib");
//2.获取lib文件夹中的所有文件(夹)的名称数组
String[] names = file.list();//文件列表
//3.遍历第二步获得的数组,用获取到的数组与path做比较
for (String name : names) {
if (name.equals(path)) {
//4.如果一致,说明该用户上传的头像已经存在了,就返回true
return true;
}
}
//5.如果不一致,说明该用户头像不存在,就返回false
return false;
}
输出栏:
请您录入您要上传的用户头像的路径
D:\a\1.jpg
D:\a\1.jpg
Exception in thread "main" java.lang.NullPointerException
at cz.bxg.demo12.demo11.DemoUploadFile.isExists(DemoUploadFile.java:64)
at cz.bxg.demo12.demo11.DemoUploadFile.main(DemoUploadFile.java:13)
Process finished with exit code 1