我遇到了以下Java代码段(source),用于读取文件中的 last 行。它使用两个Apache库 - ReversedLinesFileReader和FileUtils。这是:
Update account_vip SET ALLTime = ALLTime - 1 WHERE ALLTime > 0
然而,我不理解的是,为什么我们不简单地为ReversedLinesFileReader放入参数的文件路径,而是使用FileUtils类。
为什么我不能简单地说:
ReversedLinesFileReader reader = new ReversedLinesFileReader(FileUtils.getFile(file));
String s = "";
while ((s = reader.readLine()) != null) {
System.out.println(s);
}
谢谢
答案 0 :(得分:3)
...使用Apache FileUtils类有什么好处?
如果getFile
只是一个字符串,则没有任何优势。拨打new File(file)
之后,我会打电话给file
......在应对" var-args-ness" getFile
参数的。事实上,在这种情况下使用file
会产生性能损失,因为零具体 1 的好处。
如果String[]
是FileUtils.getFile(file)
,则file
会将字符串转换为文件路径。
为什么我不能简单地说......
假设String
是java.io
,你可以和(IMO)你应该做你提出的建议。
1 - 我看到人们在这样的案例中争辩说避免直接使用{{1}}课程是有利的,但坦率地说我不会购买它。 < / p>
答案 1 :(得分:1)
使用文件很好。 ReversedLinesFileReader有一个构造函数,它接受File作为输入。
你将使用FileUtils的原因是你可以从FileUtils.getFile()重载方法提供的内容中获益,比如传递路径元素的String []等。
除此之外,没有区别。