这本来不是一个问题,利用框架本来有的方法。或者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中写过多的东西。

【Java】推断文件的后缀名的更多相关文章

  1. Java获取文件的后缀名。

    /** * 详细步骤 */ private static void test1() { //获取文件的原始名称 String originalFilename = "tim.g (1).jp ...

  2. 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合

    package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...

  3. C#实现把指定文件夹下的所有文件复制到指定路径下以及修改指定文件的后缀名

    1.实现把指定文件夹下的所有文件复制到指定路径下 public static void copyFiles(string path) { DirectoryInfo dir = new Directo ...

  4. 电脑上文件的后缀名被隐藏,把一个文本文件改成.bat时,默认打开的还是文本。

    1.打开文件夹,选择组织,点击“文件夹和搜索选项”,如图: 2.选择“查看”,找到“隐藏已知文件类型的扩展名”,不要勾选这一项,如图: 3.点击“确定”或者“应用”

  5. git忽略除指定文件/指定后缀名文件外的文件

    不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了.所有配置文件可以直接在线浏览:https://github.com/github/gitig ...

  6. mac 批量修改文件的后缀名

    1-将需要修改的文件拖到同一个文件夹 2-打开终端输入 for i in *; do mv "$i" "$i.jpg";done

  7. *windows文件显示后缀名

  8. 如何获取url中文件的后缀名

    这是今天给学生解答问题的时候学生问的一个问题,我就在班级里给学生整体讲了一下,现在做一下分享,大家一起学习!! $url = 'http://www.sina.com.cn/abc/de/fg.php ...

  9. 获取文件的后缀名。phpinfo

    1: function get_extension($file){ //strrchr 返回 .jpg substr :1 是从1开始. substr(strrchr($file,'.'),1) } ...

随机推荐

  1. 转: Linux 技巧:让进程在后台可靠运行的几种方法

    我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开 ...

  2. 【CSS】

    12个很少被人知道的CSS事实 通过CSS禁止Chrome自动为输入框添加橘黄色边框http://www.solagirl.net/override-chromes-automatic-border- ...

  3. ♫【jQuery插件】图片放大镜

    JQZoom

  4. android studio 安装总结

    Android Studio 的安装和配置篇(Windows篇<转> http://www.jianshu.com/p/fc03942548cc# 中间gradle下载比较慢:解决方法 需 ...

  5. Windows 之间用rsync同步数据(cwRsyncServer配置)

    rsync是一款优秀的数据同步软件,在跨服务器,跨机房,跨国备份服务器的首选工具,下面就来介绍下如何配置安装cwRsyncServer很大多数软件一样是B/C架构,cwRsyncServer是rsyn ...

  6. Nginx出现“413 Request Entity Too Large”错误解决方法

    Nginx出现“413 Request Entity Too Large”错误解决方法 2011-03-25 13:49:55|  分类: 默认分类 |  标签:413  request  entit ...

  7. WCF学习笔记(二):简单调用

    转:http://www.cnblogs.com/wengyuli/archive/2009/11/08/1598428.html 一个通信会话过程有两个部分组成,客户端和服务端,他们要进行会话就必然 ...

  8. 自定义Sharepoint的登陆页面

    转:http://www.cnblogs.com/jecoso/archive/2008/05/25/1207151.html 原文作者:Damon Armstrong 原文地址:http://www ...

  9. SQLSERVER2008 18456错误

    转自:http://www.cnblogs.com/496963524-zhangying/articles/2232599.html 百度搜18456错误几乎只能搜到一篇文章,并不是说结果条数,而是 ...

  10. HDU 5688 Problem D

    Problem D Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...