zoukankan      html  css  js  c++  java
  • 【Java】推断文件的后缀名

    这本来不是一个问题,利用框架本来有的方法。或者File类的getPath()方法,取出要推断文件路径。或者getName()方法取出文件路径,成为一个String字符串如果为fileName之后,再对带哦用这fileName的endsWith("txt")方法,得到的布尔值就能推断其是否txt文件。这本来没什么好说,但会出现什么呢?比方要推断是否为图片文件,尤其是一些上传系统中,你的推断条件就要写成例如以下的形式:

    if (fileName.endsWith(".jpg") || fileName.endsWith(".jpeg")  
                                || fileName.endsWith(".bmp")  
                                || fileName.endsWith(".gif")  
                                || fileName.endsWith(".png")){}
    在同意文件类型的比較多的情况,很难看,此时能够利用indexOf方法与Java的可变长參数能够完美解决问题,详细能够參看《【Java】JDK1.5以后新型的泛型參数传递方法Object...args》(点击打开链接)这里不再赘述了。

    比方下面的程序,推断该文件是否为.txt,.png,gif,.bmp之中的一个,并对f:\a.jsp这个路径进行測试。代码例如以下:

    package isValid;
    
    public class validTest {
    	public static boolean isValid(String contentType, String... allowTypes) {
    		if (null == contentType || "".equals(contentType)) {
    			return false;
    		}
    		for (String type : allowTypes) {
    			if (contentType.indexOf(type) > -1) {
    				return true;
    			}
    		}
    		return false;
    	}
    
    	public static void main(String[] args) {
    		String[] allowTypes = new String[] { ".txt", ".png", "gif", ".bmp" };
    		Boolean CanUploaded = isValid("f:\a.jsp", allowTypes);
    		if (CanUploaded) {
    			System.out.println("该文件为.txt,.png,gif,.bmp之中的一个。同意上传。");
    		} else {
    			System.out.println("该文件不为.txt,.png,.gif,.bmp之中的一个,禁止上传!

    "); } } }

    执行结果例如以下:

    这样就能够避免在if中写过多的东西。

  • 相关阅读:
    I/O多路复用
    Django重点之url别名
    10 个常用的 Linux 命令?
    软连接和硬链接的区别?
    Linux 重定向命令有哪些?有什么区别?
    在 linux 中 find 和 grep 的区别??
    Django中用 form 实现登录注册
    你所遵循的PEP8代码规范是什么?请举例说明其要求?
    什么是 Python 的命名空间?
    ELK+Kafka日志收集环境搭建
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5344714.html
Copyright © 2011-2022 走看看