java第二个案列:上传头像(IO流)

 1 package cn.itcast.demo3;
 2 
 3 import java.io.*;
 4 import java.util.Scanner;
 5 
 6 public class Test1 {
 7     public static void main(String[] args) throws IOException {
 8         // 需求:模拟用户上传头像的功能,假设所有的用户的头像都上传到lib目录下
 9         // 1. 定义一个方法,用来获取上传头像的路径  getPath()
10         File path = getPath();
11         System.out.println(path);
12 
13         // 2. 定义一个方法,用来判断用户上传的头像在 lib 目录下是否存在
14         boolean flag = isExists(path.getName());
15         if (flag) {
16         // 3. 如果存在,提示:该用户头像已存在,上传失败
17             System.out.println("该用户头像已存在,上传失败");
18         }
19         else {
20             // 4. 如果不存在,就上传该用户头像,并提示上传成功
21             uploadFile(path);
22         }
23 
24 
25 
26 
27     }
28 
29     public static File getPath(){
30         // 1. 提示用户录入 要上传的头像的路径,并接受
31         Scanner sc = new Scanner(System.in);
32 
33         // 7. 用while
34         while (true){
35             System.out.println("请录入您要上传的用户头像的路径:");
36             String path = sc.nextLine();
37         // 2. 判断该路径的后缀名 是否为:.jpg  .png  .bmp
38         // 3. 如果不是,就提示:您录入的不是图片,请重新录入
39             if (!path.endsWith(".jpg") && !path.endsWith(".png") && !path.endsWith(".bmp")){
40                 System.out.println("您输入的不是图片,请重新录入:");
41                 continue;
42             }
43 
44         // 4. 如果存在,程序接着执行,判断文件路径是否存在,并是否为文件
45             File file = new File(path);
46             if (file.exists() && file.isFile()){
47         // 5. 如果是,就说明是我们要的数据,就返回
48                 return file;
49             }
50             else{
51         // 6. 如果不是,就提示:您录入的文件路径不存在,请重新录入
52                 System.out.println("您录入的路径不合法,请重新录入:");
53             }
54 
55 
56         }
57 
58 
59 
60 
61 
62 
63     }
64 
65     public static boolean isExists(String path){
66         File file = new File("lib");
67 
68         String[] names = file.list();
69 
70         for (String name : names) {
71             if (name.equals(path)){
72                 return true;
73             }
74         }
75 
76         return false;
77     }
78 
79     // 上传具体用户的头像
80     public static void uploadFile(File path) throws IOException {
81         BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path));
82         BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("lib\\" + path.getName()));
83 
84         int len;
85         while ((len = bis.read()) != -1){
86             bos.write(len);
87         }
88 
89         bis.close();
90         bos.close();
91 
92         System.out.println("上传成功!");
93 
94     }
95 
96 
97 }

 

posted on 2021-04-28 20:13  Hrunjie  阅读(237)  评论(0编辑  收藏  举报

导航