1. 程式人生 > >簡單的Java IO操作 修改檔名稱

簡單的Java IO操作 修改檔名稱

本人菜鳥一枚,這是第一篇技術部落格。這篇文章其實沒什麼技術含量,只是博主即興所寫,研究的問題也是很常見的Java IO知識,真要說目的性,那就是為了滿足自己的強迫症了。

先說下檔名修改。修改檔名是IO操作比較基本的知識,使用File類的renameTo()就可以實現。

貼下檔案的磁碟地址:F:\oldName.docx。

截圖:

程式碼:

package basic;

import java.io.File;
import java.util.UUID;

/**
 * Created with IntelliJ IDEA.
 * User: nulihouzi
 * Date: 13-7-17
 * Time: 下午7:28
 */
public class FileRename {
    public static void main(String[] args) {
        File file = new File("F:" + File.separator + "oldName.docx");
        //獲取檔案的絕對路徑
        String absolutePath = file.getAbsolutePath();
        //獲取檔名
        String oldName = file.getName();
        //獲取檔案安裝目錄
        String directory = absolutePath.substring(0, absolutePath.lastIndexOf(oldName));
        //獲取檔案字尾名
        String postfix = oldName.substring(oldName.lastIndexOf("."), oldName.length());
        //新檔名
        String newName = "newName";
        //重新命名檔案
        file.renameTo(new File("F:" + File.separator + newName + postfix));
    }
}
執行程式碼,看結果:

檔名已經被修改了。

這時我們可以改一下最後一行程式碼:

package basic;

import java.io.File;
import java.util.UUID;

/**
 * Created with IntelliJ IDEA.
 * User: nulihouzi
 * Date: 13-7-17
 * Time: 下午7:28
 */
public class FileRename {
    public static void main(String[] args) {
        File file = new File("F:" + File.separator + "newName.docx");
        //獲取檔案的絕對路徑
        String absolutePath = file.getAbsolutePath();
        //獲取檔名
        String oldName = file.getName();
        //獲取檔案安裝目錄
        String directory = absolutePath.substring(0, absolutePath.lastIndexOf(oldName));
        //獲取檔案字尾名
        String postfix = oldName.substring(oldName.lastIndexOf("."), oldName.length());
        //新檔名
        String newName = "oldName";
        //重新命名檔案
        file.renameTo(new File(newName + postfix));
    }
}
這段程式碼和上段的區別在於:最後一句程式碼沒有指定檔案的儲存目錄,這時檔案儲存在哪兒呢?
執行程式碼,我們先看原始的磁碟地址:


這是我們發現之前的檔案在重新命名之後消失了,我昨天在搜尋關於檔案重新命名程式碼的資訊時,看到了一技術人員對該問題的解釋是:程式碼執行後,由於未指定檔案的存放路徑,檔案被刪除了。真的是這樣嗎?
我們使用下windows的搜尋功能:


我們找到了重新命名後的檔案,在沒有指定檔案的磁碟路徑時,重新命名後的檔案被儲存在idea的project根路徑下。

後記:這段程式碼很簡單,相信各位看官很快就能看完。但也告訴我們:實踐是檢驗真理的唯一標準。在我們被海量資訊包圍的時候,我們應該保持清醒的頭腦,多問自己幾個為什麼,多動手實踐看到的,聽到的所謂真理,這樣我們才能不斷進步,才能戰勝我們自身的懶惰。與各位看官共勉。由於和朋友聊天,時間上無法再陳述便利磁碟檔案的個人所得,留到下次吧。博文中如有不妥之處,忘各位批評指正,本人很是珍惜完善自己的每次機會。