1. 程式人生 > >Java基礎篇-File IO程式設計

Java基礎篇-File IO程式設計

如果自學時候 對於IO可能會有恐懼感

如果要學好IO 必須清楚抽象類? 為什麼

IO的操作部分,重點掌握兩個程式碼模型

IO核心組成:
五個類:
File
OutputStream
InputStream
Writer
Reader

File類詳解
在java.io當中
File類是唯一一個與檔案本身(檔案的建立,刪除,取得檔案資訊)有關的程式類

File類的基本使用:

java.io.File是一個普通的類,直接產生例項化物件即可

兩個常用的構造方法
public File(String pathname)
public File(File parent, String child)

設定父路徑和子檔案

常用方法:

建立新檔案: public boolean createNewFile() throws IOException 只是建立檔案本身,對於檔案內容不做處理
刪除檔案: public boolean delete()
判斷檔案是否存在: public boolean exists()

對於路徑分隔符 Windows 是 \ UNIX 是 /
定義一個常量
public static final String separator JVM來決定最終的separator是什麼內容

同名檔案的刪除可能會存在一定的延遲

File file = new File("d:\\helllo.txt"); 
File file = new File("d:" + File.separator + "hello.txt");

file.createNewFile() //只是建立檔案

File類

如果要處理檔案內容,需要通過檔案流來進行操作

java.io包當中存在兩種流: 位元組流 與 字元流

位元組操作流

  • InputStream: 位元組輸入流
  • OutputStream: 位元組輸出流

字元流:

  • 輸入流: Reader
  • 輸出流: Writer

位元組流是原生的操作
網路資料傳輸,磁碟資料儲存的支援的資料型別只有位元組 沒有, 而磁碟中的資料必須讀取到記憶體之後才可以操作,記憶體可以將位元組轉換為字元

基本操作流程固定:

  1. 根據檔案路徑建立File類物件
  2. 根據位元組流或字元流的子類例項化父類物件
  3. 進行資料的讀取、寫入操作
  4. 關閉流 close() 方法

對於IO操作屬於自願處理,所有資源處理操作必須進行關閉,如果專案內沒有執行關閉,可能只能整個專案全部重啟才能關閉

java.io.OutputStream

一定要看

類的定義結構

public abstract class OutputStream extends Object implements Closeable, Flushable

兩個介面
Closeable : public void close() throws IOException
Flushable : public void flush() throws IOException

而在OutputStream類裡還定義其它方法
一個介面(Serializable)

BufferedReader類

類定義結構
public class BufferedReader extends Reader
public String readLine() throws IOException

public BufferedReader(Reader in)

預設的換行模式是BufferedReader最大確定 根據回車進行換行

接收型別為String, 可以進行正則處理同時可以轉換為各種的資料模式

public class Demo {
    public static void main(String[] args) throws Exception {
        BufferReader buf = new BufferReader(new InputStream)
        System.out.println()
        System.out.println()

已經被Scanner所替代

列印流解決OutputStream缺陷
java.util.Scanner 可以解決BufferedReader類缺陷
Scanner 是一個專門進行資料流處理的程式類

java.util.Scanner
類的定義

public

判斷是否有指定型別的資料: public boolean hasNextXXX();
取得只能型別的資料 public boolean nextXXX();
hasNext()
String next()

public class Demo {
    Scanner scan = new Scanner(System.in);
    System.out.print();
    if (scan.hasNextInt()) {
        int 
                

系統輸出: out err
除錯過程 log 日誌的模式輸出