你会做import com.starbase.util.FileUtils;
或import static com.starbase.util.FileUtils.*
。层次结构只是显示类FileUtils
扩展了Object
(所有类都如此)。
你还必须有.jar文件/ API来访问这个类。
编辑:添加的可能独立实现:
如果你想自己实现(我发现自己的“小事”的答案),你可以做这样的事情:
public static boolean isBinary(String fileName) throws IOException {
return isBinary(new File(fileName));
}
public static boolean isBinary(File file) throws IOException {
InputStream is = new FileInputStream(file);
try {
byte[] buf = new byte[4096];
int bytesRead;
while ((bytesRead = is.read(buf)) >= 0)
{
for (int i = 0; i < bytesRead; i++) {
if (buf[i] == (byte) 0)
return true;
}
}
return false;
} finally {
is.close();
}
}
请请注意,我没有测试过这个。
我应该补充说这是一个简单的实现。有很多类型的文本文件会被认为是二进制文件。如果您允许文本为Unicode和/或UTF-8(或其他文本编码),那么这很快就会变得非常困难。然后你需要开发一些启发式来区分各种文件,这不是100%准确的。所以,这实际上取决于你想要做什么。
寻找完全琐碎IMPL。要知道一个文件是否是二进制文件,目的不是制作解析器。 – hhh 2010-04-03 16:59:31
据我所知,并不是一种简单的方法来检查文件是否是二进制文件,我从未使用过StarTeam SDK,但如果他们有你需要的,试试看看你得到了什么结果。 – 2010-04-03 17:07:58