Java中用到文件操作时,经常要验证文件名是否合法. 用File类的createNewFile()方法的确很管用.但当要批量验证时,效率上就会有问题.正则匹配的开销比创建文件少了很多. 那么一个合法的文件(Win下)应该符合如下规则:

1.文件名不能为空,空在这里有两个意思:

文件名(包括扩展名)长度为0或仅由空字符组成(包括\t\b等不可见的转义字符)

文件名和扩展名不能同时为空.但实际上我们可以用程序创建出类似.project,..txt等形式的文件,但却创建不出类似abc.的文件

2.文件名中不能包含\/:*?"<>|中的任意字符

3. 文件名(包括扩展名)的长度不得大于255个字符 事实上形如".."(不包含引号,下同)的文件也不能被创建. 不合法的文件还有类似" aa", "aa ", "aa."(会被创建为"aa",也把它算作不合法),"a\ta"(\t为制表符等不可见字符(除空格外))

于是我们得到了文件名命名规则的更详细规定:

1.首尾不能有空字符(空格、制表符、换页符等空白字符的其中任意一个),文件名尾不能为.号

2.文件名和扩展名不能同时为空

3.文件名中不能包含\/:*?"<>|中的任意字符

4.文件名(包括扩展名)的长度不得大于255个字符

5.在1.的条件下,文件名中不能出出现除空格符外的任意空字符.

java 判断文件名合法_java用正则方法验证文件名是否合法相关推荐

  1. java判断excel格式_Java 设置Excel数据验证

    import com.spire.xls.*;public classDataValidation {public static voidmain(String[] args) {//创建Workbo ...

  2. java 判断是否字母_java判断字符是否为字母的方法

    java判断字符是否为字母的方法 发布时间:2020-06-29 18:01:37 来源:亿速云 阅读:239 作者:Leah 这篇文章运用简单易懂的例子给大家介绍java判断字符是否为字母的方法,代 ...

  3. java判断总共天数_Java判断两个日期相差天数的方法

    本文实例讲述了Java判断两个日期相差天数的方法.分享给大家供大家参考.具体如下: import java.util.Calendar; public class DateDifferent{ pub ...

  4. java判断long相等_java判断long类型字符是否相等的方法

    java判断long类型字符是否相等的方法 发布时间:2020-04-30 14:00:27 来源:亿速云 阅读:158 作者:小新 java判断long类型字符是否相等的方法?相信有很多人都不太了解 ...

  5. java 判断json 格式_java判断json格式的方法

    java判断json格式的方法 发布时间:2020-06-25 14:54:57 来源:亿速云 阅读:92 作者:Leah 本篇文章为大家展示了java判断json格式的方法,代码简明扼要并且容易理解 ...

  6. java 判断图片格式_Java判断上传图片格式的实例代码

    先给大家介绍下java判断上传图片格式. 由于客户上传图片将png的图片的后缀名改为jpg,所以通过后缀名判断不行,用下面这个方法可以 //判断是否是JPG格式 log.info("-1-- ...

  7. java 判断 中文字符_java中判断字符串中是否有中文字符

    package com.meritit.test; public class TestChart { public static void main(String[] args) throws Exc ...

  8. java判断数字大小写_java判断字符串是否全部由数字,大小写字母,特殊符号组成...

    直接上代码,经过验证. package javaTest; import java.util.regex.Matcher; import java.util.regex.Pattern; public ...

  9. java判断list相等_java 判断两个list是否相等

    /** * 队列比较 * @param * @param a * @param b * @return */ public static > boolean compare(List a, Li ...

最新文章

  1. java 待在原页面 代码_现在java后台,只要修改一点点代码,前段页面就报500,必须重新登录才行?...
  2. HTML表单input类型有哪些,HTML表单之input元素的23种type类型
  3. mysql 自定义函数 找不到表_mysql 自定义函数
  4. bootstrap项目实例_101个Python项目打包放送,工作学习必备(源码放送)
  5. Android 中文API (65) —— BluetoothClass[蓝牙]
  6. Entry输入框实现登录用户名冷却验证小案例(Tkinter)
  7. 数据库的使用(SQL)
  8. vim配置IDE,下载压缩包即拥有轻巧且强大的文本编辑器
  9. 特征选择relief算法介绍
  10. matlab变量全局化,matlab全局变量global
  11. 80x86段寻址的原因
  12. 关于开会了一点点想法
  13. python实现.jpeg转.jpg
  14. 一位美国教授给研究生的怎样记读书笔记的建议(中文总结)
  15. stl文件怎么用Java读取_vtk对stl文件进行下采样
  16. DIY申请达姆施塔特工业大学计算机专业(Informatik)硕士(Master)【附个人简历和动机信】...
  17. 使用树莓派实现动作捕捉、抓拍并存储照片
  18. 20 人机猜拳互动游戏开发
  19. c和c++的一些训练题(4)(小学生比较国家面积)
  20. 2017波折重重的一年

热门文章

  1. nii数据转png图像
  2. 幼儿园EasyNVR能力层安防监控平台调用视频直播流报404错误解决方案
  3. android 插入 百度移动联盟 banner广告,百度移动应用广告盟联ane使用教程.docx
  4. 世界上第一第一台计算机叫什么,世界上第一台计算机叫什么
  5. crash工具解析_Android Crash 工具
  6. 成都物韵电子商务有限公司拼多多代运营若干技巧
  7. C++ 文件的读写(fin fout)
  8. php方法重写:Declaration of should be compatible with that
  9. ZJUer必备之西塘自助游攻略…
  10. Flutter省市区的三级联动