hu848915733 2020-06-15 09:21 采纳率: 0%
浏览 92

【编程小白模拟头像上传】输入路径之后程序运行失败报错 空指针异常 怎么解?

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

  • 写回答

2条回答 默认 最新

  • Timor_D 2020-06-15 10:22
    关注

    isExists这个方法里面报空指针了,打断点看下file这个是不是没获取到

    评论

报告相同问题?

悬赏问题

  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺