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