Jam*_* P. 11 java utility-method
这是一个实用方法的例子:
public static Long getFileSize(String fileString) {
File file = new File(fileString);
if (file == null || !file.isFile())
return null;
return file.length();
}
Run Code Online (Sandbox Code Playgroud)
将String而不是File传递给这样的方法是一种好习惯吗?一般来说,在制作这种风格的实用方法时应该采用什么推理?
这是我的首选解决方案:
public static Long getFileSize(String path) {
return getFileSize(new File(path));
}
public static Long getFileSize(File file) {
return (!file.isFile()) ? -1L : file.length();
}
Run Code Online (Sandbox Code Playgroud)
请注意,它返回 -1L 而不是 0L,以允许调用者区分空文件和由于某种原因无法确定长度的“文件”。file.length()在某些情况下,如果您没有零长度文件,则将返回零;例如
file不存在时file目录时file是一个特殊文件(例如设备文件、管道等)并且操作系统无法确定其长度时。这次电话会议file.isFile()涉及这些案件。然而,方法是否应该返回-1L或抛出异常是有争议的。这场争论的答案在于这些-1L案例是“正常”还是“例外”,而这只能根据该方法设计使用的上下文来确定,
| 归档时间: |
|
| 查看次数: |
7247 次 |
| 最近记录: |