java file类详解_Java File类详解及IO介绍及使用
我是一個(gè)CPU:這個(gè)世界慢!死!了!,可以感受到CPU,內(nèi)存和硬盤之間的速度比較。
文件的本質(zhì)
OS(操作系統(tǒng))的目的就是可以讓上層程序可以通過一種統(tǒng)一的方式去拿到無論什么磁盤里的文件(即一段字節(jié)流)。
一切文件的本質(zhì):
一段字節(jié)流
文本文件(txt,代碼,html等)
二進(jìn)制文件
每個(gè)程序負(fù)責(zé)解釋文件中的字節(jié)流
即文件本身就是一段字節(jié)流,不管是圖片、音頻還是文本等等,文件的展示形式取決于用什么軟件打開,例如播放器可以解析mp3文件等,但是本質(zhì)上這個(gè)文件就是一段字節(jié)流。
文件和IO
程序和文件之間的雙向流讀取和輸出,和網(wǎng)絡(luò)連接時(shí),從機(jī)器到遠(yuǎn)程主機(jī)上的雙向的讀取輸出流十分相似,所以Java針對(duì)這種流抽象出了InputStream和OutputStream。
InputStream/OutputStream
抽象的輸入/輸出流,無論是:
從文件中讀取字節(jié)流
從網(wǎng)絡(luò)中讀取字節(jié)流
從任何地方讀取字節(jié)流
輸入和輸出都是以程序?yàn)榛鶞?zhǔn)來判定的
對(duì)于文件讀取,永遠(yuǎn)建議使用絕對(duì)路徑。
Java中的File類
File并不代表一個(gè)“文件”,它只代表一個(gè)“路徑”
抽象的“文件”路徑: 可以指文件也可以指文件夾
File的常見方法
isFile() isDirectory() exists() getAbsolutePath()等等
絕對(duì)路徑和相對(duì)路徑
相對(duì)路徑相對(duì)的是JVM當(dāng)前的工作目錄,永遠(yuǎn)建議使用絕對(duì)路徑。
讀寫文件
NIO
NIO是Java7之后引入的,解釋為:1.new IO 2.Non-blocking IO非阻塞的IO
NIO中的Path其實(shí)就是舊版的File,可以通過toFile方法進(jìn)行轉(zhuǎn)換
NIO的Files工具類,提供了walkFileTree等方法
NIO解決的問題是,對(duì)于舊版的流式讀取,因?yàn)槠涫峭ㄟ^字節(jié)流的形式傳輸?shù)?#xff0c;一個(gè)字節(jié)一個(gè)字節(jié)的進(jìn)行讀寫,沒法插隊(duì)等等,速度較慢。NIO改為了按塊讀寫,中間塊和塊是也是沒有順序的,是比舊版IO快的。
IO太慢的解決方法
使用BufferedReader/BufferedWriter
不用重復(fù)造輪子
總結(jié)
以上是生活随笔為你收集整理的java file类详解_Java File类详解及IO介绍及使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 解析二进制_java实现解析二
- 下一篇: java excel转word表格_ja