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