平常對文件的操作並不多,這裏的基礎知識很不牢固,一個小坑記錄一下
在對文件操作的時候,使用File類,比如進行文件複製操作時,當一個文件的目錄層級比較多時,需要注意一個問題,目的地址的目錄是否也是多層級目錄,並且這其中的層級是否已經存在,如果不存在的話,則直接進行復制代碼操作,則會產生空指針異常。
比如要複製D:/test/A101/a.txt 文件 到D:/test/common 目錄,但這時common目錄在test目錄下並不存在,這時進行直接複製則會產生異常。
當然,在代碼中可以避免這樣的情況,就是在目標file文件的目錄不確定是否存在的情況下,使用file.getParentFile().exists()進行判斷,不存在則mkdirs創建多級目錄。
@Test
public void fileTest(){
File file = new File("D:\\test\\bb\\a.txt");
if(!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}