日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

第十章:Java_IO流

發布時間:2023/12/20 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第十章:Java_IO流 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java IO流

1.java.io包下
File類:java程序中的此類的一個對象,就對應著硬盤中的一個文件或網絡中的一個資源。
File file1 = new File(“d:\io\helloworld.txt”);
File file2 = new File(“d:\io\io1”);

  • File既可以表示一個文件(.doc .xls .mp3 .avi .jpg .dat),也可以表示一個文件目錄!
  • File類的對象是與平臺無關的。
  • File類針對于文件或文件目錄,只能進行新建、刪除、重命名、上層目錄等等的操作。如果涉及到訪問文件的內容,File
    是無能為力的,只能使用IO流下提供的相應的輸入輸出流來實現。
  • 常把File類的對象作為形參傳遞給相應的輸入輸出流的構造器中!
  • IO流體系

    IO流的劃分


    1) 按照流的流向的不同:輸入流 輸出流 (站位于程序的角度)

    2) 按照流中的數據單位的不同:字節流 字符流 (純文本文件使用字符流 ,除此之外使用字節流)

    3) 按照流的角色的不同:節點流 處理流 (流直接作用于文件上是節點流(4個),除此之外都是處理流)

    重點掌握

    抽象基類:
    InputStream
    OutputStream
    Reader
    Writer

    節點流(文件流):
    FileInputStream (int read(byte[] b))
    FileOutputStream (void write(b,0,len))
    FileReader (int read(char[] c))
    FileWriter (void write(c,0,len))

    緩沖流(處理流的一種,可以提升文件操作的效率):
    BufferedInputStream (int read(byte[] b))
    BufferedOutputStream (flush()) (void write(b,0,len))
    BufferedReader (readLine()) (int read(char[] c))或String readLine() BufferedReader (readLine()) (int read(char[] c))或String readLine()

    注: 1.從硬盤中讀入一個文件,要求此文件一定得存在。若不存在,報FileNotFoundException的異常
    2.從程序中輸出一個文件到硬盤,此文件可以不存在。若不存在,就創建一個實現輸出。若存在,則將已存在的文件覆蓋
    3.真正開發時,就使用緩沖流來代替節點流
    4.主要最后要關閉相應的流。先關閉輸出流,再關閉輸入流。將此操作放入finally

    其它的流

    1.轉換流

    實現字節流與字符流之間的轉換

    InputStreamReader:輸入時,實現字節流到字符流的轉換,提高操作的效率(前提是,數據是文本文件) ===>解碼:字節數組—>字符串

    OutputStreamWriter:輸出時,實現字符流到字節流的轉換。 ===>編碼: 字符串—->字節數組
    例子:從鍵盤輸入字符串,要求將讀取到的整行字符串轉成大寫輸出。然后繼續進行輸入操作,直至當輸入“e”或者“exit”時,退出程序。

    2.標準的輸入輸出流

    System.in: The “standard” input stream:從鍵盤輸入數據
    System.out:The “standard” output stream:從顯示器輸出數據

    3.打印流 (都是輸出流)

    PrintStream(處理字節)
    PrintWriter(處理字符)
    可以使用System.setOut(PrintStream p)重新設置一下輸出的位置。
    PrintStream p = new PrintStream(new FileOutputStream(“hello.txt”),true);

    4.數據流(處理基本數據類型、String類、字節數組)

    DataInputStream DataOutputStream

    5.對象流(用來處理對象的)

    對象的序列化機制:
    允許把內存中的Java對象轉換成平臺無關的二進制流,從而允許把這種二進制流持久地保存在磁盤上,或通過網絡將這種二進制流傳輸到另一個網絡節點。當其它程序獲取了這種二進制流,就可以恢復成原來的Java對象。

    ObjectInputStream(Object readObject();)
    ObjectOutputStream (void writeObject(Object obj))

    如何創建流的對象:

    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("person.txt"))); ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("person.txt")));

    實現序列化機制的對象對應的類的要求:
    ①要求類要實現Serializable接口
    ②同樣要求類的所有屬性也必須實現Serializable接口
    ③ 要求給類提供一個序列版本號:private static final long serialVersionUID;
    ④屬性聲明為static 或transient的,不可以實現序列化

    6.隨機存取文件流:RandomAccessFile

    6.1 既可以充當一個輸入流,又可以充當一個輸出流:public RandomAccessFile(File file, String mode)

    6.2 支持從文件的開頭讀取、寫入。若輸出的文件不存在,直接創建。若存在,則是對原有文件內容的覆蓋。

    6.3 支持任意位置的“插入”。

    總結

    以上是生活随笔為你收集整理的第十章:Java_IO流的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。