Java IO流對(duì)文件File操作
什么是文件
文件,對(duì)我們并不陌生,文件是保存數(shù)據(jù)的地方,比如大家經(jīng)常使用的word文檔,txt文件,exce|文件..都是文件。它既可以保存一-張圖片也可以保持視頻,聲音...
文件流
文件在程序中是以流的形式來(lái)操作的。
流:數(shù)據(jù)在數(shù)據(jù)源(文件)和程序(內(nèi)存)之間經(jīng)歷的路徑。
輸入流:數(shù)據(jù)從數(shù)據(jù)源(文件)到程序(內(nèi)存)的路徑。
輸出流:數(shù)據(jù)從程序(內(nèi)存)到數(shù)據(jù)源(文件)的路徑。
可以把上面的流比作人喝水
從杯子里的水喝進(jìn)去人的胃里,就是輸入流,人把水吐出到杯子里就是輸出流。杯子就是磁盤,水就是文件。人就是Java程序,胃就是內(nèi)存。
常用的文件操作
創(chuàng)建文件
new File(String pathname) //根據(jù)路徑構(gòu)建一一個(gè)File對(duì)象
new File(File parent,String child) //根據(jù)父目錄文件+子路徑構(gòu)建
File(String parent,String child) //根據(jù)父目錄+子路徑構(gòu)建
createNewFile創(chuàng)建新文件
直接看代碼:
package com.io.file; import org.junit.jupiter.api.DynamicTest; import org.junit.jupiter.api.Test; import java.io.File; import java.io.IOException; /** * @author 華子 * 文件的創(chuàng)建 */ public class FileCreate { public static void main(String[] args) { } // 第一種方法 new File(String path) @Test public void create01(){ String filePath = "E:\\news1.txt"; File file = new File(filePath); try { file.createNewFile(); System.out.println("文件創(chuàng)建成功"); } catch (IOException e) { System.out.println("文件創(chuàng)建失敗"); } } // 第二種方法 newFile(File parent,String path);父目錄+子路徑構(gòu)建 @Test public void create02(){ File parentFile = new File("e:\\"); String fileName = "news2.txt"; // 這里的file對(duì)象,只是一個(gè)Java對(duì)象,保存在內(nèi)存中 File file = new File(parentFile, fileName); // 只有createNewFile()了,才會(huì)出現(xiàn)在磁盤中 try { file.createNewFile(); System.out.println("文件創(chuàng)建成功"); } catch (IOException e) { System.out.println("文件創(chuàng)建失敗"); } } //方式3 new File(String parent, String child) //根據(jù)父日錄+子路徑構(gòu)建 @Test public void create03(){ String parentFile = "e:\\"; String childFile = "news\\news3.txt"; File file = new File(parentFile, childFile); try { file.createNewFile(); System.out.println("文件創(chuàng)建成功"); } catch (IOException e) { System.out.println("文件創(chuàng)建失敗"); } } }
運(yùn)行結(jié)果:
第一種方法就是在E盤中創(chuàng)建了一個(gè)news1.txt文件
第二種方法通過(guò)父目錄文件+子路徑構(gòu)建在E盤新建了一個(gè) news2.txt 文件。
第三種就是 根據(jù)父目錄+子路徑構(gòu)建 在E盤中的news文件夾里創(chuàng)建了一個(gè)new3.txt文件
如圖:
獲取文件信息
getName、getAbsolutePath、 getParent、 length、 exists、 isFile、isDirectory
獲取上面創(chuàng)建的new3.txt文件。
直接看代碼:
package com.io.file; import org.junit.jupiter.api.Test; import java.io.File; /** * 獲取文件信息 */ public class FileInformation { public static void main(String[] args) { } // 獲取文件信息 @Test public void info(){ // 先創(chuàng)建文件對(duì)象 File file = new File("E:\\news\\news3.txt"); // 調(diào)用對(duì)應(yīng)的方法,得到對(duì)應(yīng)的信息 // getName、getAbsolutePath、getParent、Length、exists、isFile、isDirectory System.out.println("文件名稱:"+file.getName()); System.out.println("文件絕對(duì)路徑:"+file.getAbsolutePath()); System.out.println("文件父級(jí)目錄:"+file.getParent()); System.out.println("文件大?。?+file.length()); System.out.println("文件是否存在:"+file.exists());//true System.out.println("是不是一個(gè)文件:"+file.isFile());//true System.out.println("是不是一個(gè)目錄:"+file.isDirectory());//false } }
運(yùn)行結(jié)果:
目錄的操作和文件刪除
mkdir創(chuàng)建一級(jí)目錄、mkdirs創(chuàng)建多級(jí)目錄、delete刪除空目錄或文件
直接看案例:
package com.io.file; import org.junit.jupiter.api.Test; import java.io.File; /** * 目錄 */ public class Directory { public static void main(String[] args) { } // 判斷e:\news1.txt是否存在,如果存在就刪除 @Test public void m1(){ String filePath = "e:\\news1.txt"; File file = new File(filePath); if(file.exists()){ if(file.delete()){ System.out.println("文件已經(jīng)刪除...."); }else { System.out.println("文件刪除失敗..."); } }else { System.out.println("該文件不存在..."); } } //判斷D:\\demo02 這個(gè)目錄是否存在,存在就刪除,否則提示不存在 //這里我們需要體會(huì)到,在java編程中,目錄也被當(dāng)做文件 @Test public void m2(){ String filePath = "D:\\demo02"; File file = new File(filePath); if(file.exists()){ if(file.delete()){ System.out.println("目錄已經(jīng)刪除...."); }else { System.out.println("目錄刪除失敗..."); } }else { System.out.println("該目錄不存在..."); } } //判斷D:\\demo\\a\\b\\c 日錄是否存在,如果存在就提示經(jīng)存在,否則就創(chuàng)建 @Test public void m3(){ String directoryPath = "D:\\demo\\a\\b\\c"; File file = new File(directoryPath); if(file.exists()){ System.out.println("目錄已經(jīng)存在"); }else { if(file.mkdirs()){ System.out.println("創(chuàng)建成功"); }else { System.out.println("創(chuàng)建失敗"); } } } }
m1方法刪除news.txt文件,m2在D盤創(chuàng)建一級(jí)目錄demo,m3在D盤創(chuàng)建多級(jí)目錄
運(yùn)行結(jié)果:
到此這篇關(guān)于Java IO流對(duì)文件File操作的文章就介紹到這了,更多相關(guān)Java操作File內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot使用thymeleaf實(shí)現(xiàn)前端表格
雖然現(xiàn)在流行前后端分離,但是后端模版在一些關(guān)鍵地方還是非常有用的,例如郵件模版、代碼模版等。當(dāng)然也不排除一些古老的項(xiàng)目后端依然使用動(dòng)態(tài)模版。Thymeleaf 簡(jiǎn)潔漂亮、容易理解,并且完美支持 HTML5,可以直接打開(kāi)靜態(tài)頁(yè)面,同時(shí)不新增標(biāo)簽,只需增強(qiáng)屬性2022-10-10Java使用PreparedStatement接口及ResultSet結(jié)果集的方法示例
這篇文章主要介紹了Java使用PreparedStatement接口及ResultSet結(jié)果集的方法,結(jié)合實(shí)例形式分析了PreparedStatement接口及ResultSet結(jié)果集的相關(guān)使用方法與操作注意事項(xiàng),需要的朋友可以參考下2018-07-07劍指Offer之Java算法習(xí)題精講二叉樹(shù)專題篇上
跟著思路走,之后從簡(jiǎn)單題入手,反復(fù)去看,做過(guò)之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化2022-03-03SpringMVC結(jié)構(gòu)簡(jiǎn)介及常用注解匯總
這篇文章主要介紹了SpringMVC結(jié)構(gòu)簡(jiǎn)介及常用注解匯總,幫助大家更好的理解和學(xué)習(xí)使用SpringMVC,感興趣的朋友可以了解下2021-03-03idea將項(xiàng)目上傳到Gitee的圖文過(guò)程
這篇文章主要介紹了idea將項(xiàng)目上傳到Gitee上,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08Spring boot 總結(jié)之跨域處理cors的方法
本篇文章主要介紹了Spring boot 總結(jié)之跨域處理cors的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02