java的IO流詳細(xì)解讀
流,就是一系列的數(shù)據(jù)。
當(dāng)不同介質(zhì)之間有數(shù)據(jù)交互的時(shí)候,JAVA就使用流來實(shí)現(xiàn)。數(shù)據(jù)源可以是文件,還可以是數(shù)據(jù)庫、網(wǎng)絡(luò)甚至其他的程序。
比如讀取文件的數(shù)據(jù)到程序中,站在程序的角度來看,就叫做輸入流。
字節(jié)流(以字節(jié)的形式讀取和寫入數(shù)據(jù))
InputStream字節(jié)輸入流同時(shí)也是抽象類,只提供方法聲明,不提供方法的具體實(shí)現(xiàn)。
FileInputStream是InputStream的子類,下面以FileInputStream為例進(jìn)行文件讀取
package testIO; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Date; public class testFile { public static void main(String[] args) throws IOException { File f=new File("F:/test/lol.txt"); //創(chuàng)建基于文件的輸入流 FileInputStream fis=new FileInputStream(f); //創(chuàng)建字節(jié)數(shù)組,其長度就是文件的長度 byte[] bs=new byte[(int) f.length()]; System.out.println("以字節(jié)流的形式讀取文件的所有內(nèi)容:"+fis.read(bs)); for (byte b:bs){ System.out.println(b); } fis.close(); } }
OutputStream字節(jié)輸出流同時(shí)也是抽象類,只提供方法聲明,不提供方法的具體實(shí)現(xiàn)
FileOutputStream是OutputStream的子類,下面以FileOutputStream為例進(jìn)行數(shù)據(jù)寫入
package testIO; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class writeIO { public static void main(String[] args) throws IOException { File f=new File("F:/test/lol.txt"); FileOutputStream fos=new FileOutputStream(f); byte data[]={87,88}; fos.write(data); fos.close(); } }
注:如果lol文件不存在,寫出操作會(huì)自動(dòng)創(chuàng)建該文件,如果是目錄test不存在,則會(huì)拋出異常。
那么如果目錄test不存在,怎么可以讓程序自動(dòng)創(chuàng)建?如果路徑是F:/test/yang/lol.txt,且test和yang都不存在?
package testIO; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class writeIO { public static void main(String[] args) throws IOException { File f=new File("F:/test/yang/csdn/lol.txt"); System.out.println(f.exists()); File dir=f.getParentFile(); //獲取文件所在目錄 if(!dir.exists()){ dir.mkdirs(); //如果文件目錄不存在,將會(huì)將不存在的目錄創(chuàng)建好 } FileOutputStream fos=new FileOutputStream(f); byte data[]={87,88}; fos.write(data); fos.close(); } }
程序中獲取到文件所在目錄,如果目錄不存在就會(huì)創(chuàng)建目錄
總結(jié)
以上就是本文關(guān)于java的IO流詳細(xì)解讀的全部內(nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
- Java字節(jié)流和字符流及IO流的總結(jié)
- Java通過IO流輸出文件目錄的實(shí)例代碼
- Java如何基于IO流實(shí)現(xiàn)同一文件讀寫操作
- Java IO字符流緩沖區(qū)實(shí)現(xiàn)原理解析
- Java IO流常用字節(jié)字符流原理解析
- Java IO流之字符緩沖流實(shí)例詳解
- 詳解Java中IO字節(jié)流基本操作(復(fù)制文件)并測試性能
- java IO數(shù)據(jù)操作流、對(duì)象序列化、壓縮流代碼解析
- Java IO流相關(guān)知識(shí)代碼解析
- 你肯定能看懂的Java IO相關(guān)知識(shí)總結(jié)
相關(guān)文章
Mybatis choose when用法實(shí)例代碼
本文通過實(shí)例代碼給大家介紹了Mybatis choose when用法,需要的的朋友參考下吧2017-06-06用JAVA實(shí)現(xiàn)單鏈表,檢測字符串是否是回文串
這篇文章主要介紹了使用JAVA實(shí)現(xiàn)單鏈表,檢測字符串是否是回文串,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-11-11Spring Boot 接口參數(shù)加密解密的實(shí)現(xiàn)方法
這篇文章主要介紹了Spring Boot 接口參數(shù)加密解密的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Spring Boot Mail QQ企業(yè)郵箱無法連接解決方案
這篇文章主要介紹了Spring Boot Mail QQ企業(yè)郵箱無法連接解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09