java IO流进阶 模拟上传头像系统详解
目录
一、前言:
这篇文章是对之前
的补充。我们试着用java IO流 来模拟一个独立的头像上传系统。看本篇分享需要有一定的javaSE基础,特别是IO流基础和File文件类基础,因为本篇就是对File类和IO流知识综合的一个小应用。基础好的同学也可以直接看代码。代码中做了非常详细的注释。二、思路:
PS:直接看代码中的注释也可以.
①分析:
1.要上传头像,多少要有一个保存所上传头像的目录,up以头像文件夹作为演示,如图:
即,演示中我们所上传的头像,都会保存在“头像” 这个文件夹里头。当然,因为是新建的文件夹做演示用的,所以一开始头像文件夹内容为空,如图:
2.既然是用到了IO流的知识,那IO流肯定是“上传头像”这具体一过程用到了,也就是字节流拷贝头像嘛,但是,我们如何获取用户想要上传的头像? 这里我们考虑选择Scanner类的nextLine()方法,让用户输入要上传头像的路径(因为该路径之后是可以作为IO流拷贝中数据源文件路径的)。
3.收到用户输入的路径后,应该立刻判断该文件后缀名是否属于图片的格式,如果不是,应该提示用户录入的不是图片,要重新录入。
4.如果路径符合图片的格式,就要进行二次判断了,判单传入的路径是否合法,以及是否是文件,如果路径非法,或者传入的是个名字叫xxx.png之类的文件夹而不是文件,就提示用户录入的路径不合法,要重新录入。最后就是要判断该图片是不是已经在头像文件夹中存在了,如果存在,应该提示用户要上传的头像已经存在了,无需再次上传,如果不存在,就准备进行上传工作。
5.最后一步就是正式的上传工作了,使用高效字节流拷贝图片,直接搞定。
②总结:
经过上述的简略分析,我们大致确定要定义三个函数,
第一个函数用于实现获取用户头像的功能,且要进行判断,判断是否为图片,且是否为合法路径。
第二个函数用于判断要上传的头像是否已经存在,即是否已经上传过了。
第三个函数用于执行确定的上传操作。
三、代码:
①准备工作:
up也有个毛病就是演示教学的时候往往过于认真,所以更注重实操效果。因此我们要上传的头像就随便找了。如下是up随便找的几张普普通通的插图:
🆗,小伙伴儿将就一下吧,毕竟是演示,图片不需要华丽。up将这三张图片放在了桌面上的csdn文件夹中作为备用。如图:
为了测试我们的系统,我特意将三张图片的格式分别设置为了.png .jpg 和 .bmp格式,注意看,第一个文件夹我故意给它起名字为Fake.png,测试一下能否混淆视听。
②代码演示:
③运行效果:
好的,我们看看运行效果如何:
我们先输入一个不是图片的路径,如下演示:
如gif所示,当我们上传一个以非图片格式作为后缀的路径时,它提示我们后缀不是图片格式。那我们接着上传一个以图片格式结尾的文件夹。(文件夹不是文件,图片属于文件!) ,如图:
它提示我们路径非法,因为它不是一个文件,而只是个名字叫Fake.png的文件夹。那我们传入一个真正的要上传的头像的路径,演示如下:
好的,它提示我们上传成功了,那我们切到头像文件夹下,看看是否存在test1.png头像,如图:
雀氏成功了。我们再接着把test2.jpg 和 test3.bmp传上去。演示如下:
可以看到test2.jpg 和 test3.bmp也成功上传了 。🆗,我们的演示就全部结束了。
四、撒❀:
能将代码全部理解并成功运行的,恭喜你,你有着扎实的基础!
System.out.println("END---------------------------------------------------------------------------------");
- 点赞
- 收藏
- 关注作者
评论(0)