title: Java: File#reName() successfully rename the file, but the file object still reference the old name
body: <p>I experienced a strange behavior from Java</p>
  
  <pre><code>File file = new File("test.txt");
  file.reName(new File("test1.txt"));
  </code></pre>
  
  <p>The file successfully rename from <code>test.txt</code> to <code>test1.txt</code>, but if I do</p>
  
  <pre><code>System.out.println(file.getCanonicalPath()); //This return test.txt
  </code></pre>
  
  <p>Is this expected? And what is a clean way to solve this?</p>