RFR(JDK11/NIO) 8202285: (fs) Add a method to Files for comparing file contents
Jonathan Gibbons
jonathan.gibbons at oracle.com
Mon Apr 30 23:10:46 UTC 2018
At the risk of triggering a #bikeshed on the relative merits of
"content" vs. "contents", I note that String has put a stake in the
ground for the singular form, with contentEquals.
https://docs.oracle.com/javase/9/docs/api/java/lang/String.html#contentEquals-java.lang.CharSequence-
-- Jon
On 4/30/18 4:02 PM, Joe Wang wrote:
> Hi Jonathan,
>
> hasSameContents does read better in English. This one was made
> isSameContent since I thought we'd want to stack it next to the
> existing isSameFile method since it's meant to be an extend to that
> method. I'd love to hear what people think about this. I'm open to
> change the name if there's a good consensus.
>
> Cheers,
> Joe
>
> On 4/27/2018 4:01 AM, Jonathan Bluett-Duncan wrote:
>> Hi Joe,
>>
>> I wonder if the method `isSameContent` should be named
>> `haveSameContents` so as to read more fluently in English.
>>
>> Cheers,
>> Jonathan
>>
>> On 27 April 2018 at 11:58, Daniel Fuchs <daniel.fuchs at oracle.com
>> <mailto:daniel.fuchs at oracle.com>> wrote:
>>
>> Hi Joe,
>>
>> On the specification side, I think I would reword the API
>> documentation to first explain how the method checks the
>> content of the two files.
>>
>> The fact that it doesn't check the actual content if
>> the two files are 'the same' is kind of an optimization.
>>
>> So I would suggest to invert the order of the two paragraph
>> in the documentation, and combine them into one - something like:
>>
>> 1536 * <p>
>> * This method first calls {@link
>> #isSameFile(java.nio.file.Path, java.nio.file.Path)
>> isSameFile(path, path2)} to determine whether the two files are
>> the same.
>> 1537 * If {@code isSameFile(path, path2)} returns false, this
>> method will proceed
>> 1538 * to read the files and compare them byte by byte to
>> determine if they contain
>> 1539 * the same contents.
>> * Otherwise, this method will return true without further
>> * processing.
>>
>>
>> On the implementation side I don't think it's reasonable to call
>> readAllBytes() and hold the content of the two files in memory
>> for comparing their content, especially if it's to discover that
>> the first byte differs.
>>
>> Some lock-step reading of the two files would seem more appropriate.
>>
>> best regards,
>>
>> -- daniel
>>
>>
>>
>>
>>
>> On 27/04/2018 05:51, Joe Wang wrote:
>>
>> Hi,
>>
>> Considering extending isSameFile to add isSameContent to
>> Files. Please review.
>>
>> JBS: https://bugs.openjdk.java.net/browse/JDK-8202285
>> <https://bugs.openjdk.java.net/browse/JDK-8202285>
>>
>> webrev:
>> http://cr.openjdk.java.net/~joehw/jdk11/8202285/webrev/
>> <http://cr.openjdk.java.net/%7Ejoehw/jdk11/8202285/webrev/>
>>
>> specdiff:
>> http://cr.openjdk.java.net/~joehw/jdk11/8202285/specdiff/java/nio/file/Files.html
>> <http://cr.openjdk.java.net/%7Ejoehw/jdk11/8202285/specdiff/java/nio/file/Files.html>
>>
>>
>> Thanks,
>> Joe
>>
>>
>>
>
More information about the core-libs-dev
mailing list