[英]JAVA - Most efficient way to remove file extension
我要删除文件扩展名。 例如:
ActualFile = image.png
ExpectedFile = image
哪种方法最有效?
removeExtension()
方法 fileName.substring(0, fileName.lastIndexOf('.'))
没有区别,只有一个。 您是否真的要添加整个Apache库以仅使用一种方法? 如果您在应用程序中使用Apache-那么也要使用它。 如果不是,请创建您的自定义实现,这不是火箭科学。
从commons-io
中查看removeExtension
,您可以看到substring
也以与您描述的相似方式在水下用于该方法:
public static String removeExtension(final String fileName) {
if (fileName == null) {
return null;
}
failIfNullBytePresent(fileName);
final int index = indexOfExtension(fileName);
if (index == NOT_FOUND) {
return fileName;
}
return fileName.substring(0, index);
}
因为执行的操作较少,所以您的方法更快,但是removeExtension
方法具有failIfNullBytePresent
,它指出:
检查输入是否为空字节,这是未经过处理的数据的标志,将传递给文件级功能。
这可用于毒害字节攻击。
和indexOfExtension
来获取具有更多检查的扩展的索引(如您在此处的该方法的javadoc中所看到的 )。
您的方法更快,但是我想说在各种情况下使用commons-io
更为安全/一致,但是使用哪种方法取决于您的情况是否复杂,这是应用程序的关键功能还是自己的自制项目。 removeExtension
不是复杂或缓慢的,你不应该深灰色使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.