目錄
IO操作
FileInputStream
FileOutputStream
位元組流讀寫案例
字元流
FileWriter
#FileReader
首頁 Java java教程 JAVA中IO運算的位元組流和字元流實例分析

JAVA中IO運算的位元組流和字元流實例分析

Apr 22, 2023 pm 05:58 PM
java io

JAVA中IO運算的位元組流和字元流實例分析

IO操作

JAVA中IO運算的位元組流和字元流實例分析

  • ##java.io.InputStream 輸入流,主要是用來讀取文件內容的。

  • java.io.OutputStream 輸出流,主要是用來將內容位元組寫入檔案的。

FileInputStream

該流用於從檔案讀取數據,它的物件可以用關鍵字 new 來建立。
有多種建構方法可用來建立物件。
可以使用字串類型的檔案名稱來建立一個輸入流物件來讀取檔案

InputStream f = new FileInputStream("D:/hello");
登入後複製

也可以使用一個檔案物件來建立一個輸入流物件來讀取文件。我們首先得使用File() 方法來建立一個檔案物件:

File f = new File("D:/hello");InputStream in = new FileInputStream(f);
登入後複製

FileOutputStream

該類別用來建立一個檔案並向文件中寫數據。
如果該流在開啟檔案進行輸出之前,目標檔案不存在,那麼該流會建立該檔案。
有兩個建構方法可以用來建立 FileOutputStream 物件。
使用字串類型的檔案名稱來建立一個輸出流物件:

OutputStream f = new FileOutputStream("D:/hello");
登入後複製

#也可以使用一個檔案物件來建立一個輸出流來寫入檔案。我們首先得使用File()方法來建立一個檔案物件:

File f = new File("D:/hello");OutputStream fOut = new FileOutputStream(f);
登入後複製

位元組流讀寫案例

讀取D:/ hello.txt檔案中的內容再輸入到檔案D:/test.txt中

      public class Mk {
        public static void main(String[] args) throws IOException {
            File file=new File("D://hello.txt");
            File file1= new File("D://test.txt");
            InputStream is=new FileInputStream(file);
            OutputStream out=new FileOutputStream(file1);
            //定义byte数组用来暂存数据
            byte[] buf = new byte[1024];
            //读取Is中的内容存到buf
            is.read(buf);
            //将buf中的内容写入out
            out.write(buf);
            is.close();
            out.close();
        }
        }
登入後複製

字元流

FileWriter

寫入檔案實例

public class A {
    public static void main(String[] args) throws IOException {
        FileWriter fw = new FileWriter("user.txt", true);
        fw.write("你好中国1");
        fw.write("你好中国2");
        fw.write("你好中国3");
        fw.close();
    }}
登入後複製

JAVA中IO運算的位元組流和字元流實例分析
JAVA中IO運算的位元組流和字元流實例分析

#FileReader

##讀取文件實例

這裡我把內容換行了

JAVA中IO運算的位元組流和字元流實例分析 br.ready()是判斷這一行流是否為空
br.readLine()是輸出一行,然後自動遊標指向下一行。

public class A {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader("user.txt"));
        while (br.ready()) {
            System.out.println(br.readLine());
        }
        br.close();
    }}
登入後複製

JAVA中IO運算的位元組流和字元流實例分析

位元組流與字元流得區別

位元組流和字元流使用是非常相似的,那麼除了操作程式碼的不同之外,還有哪些不同呢?

位元組流在操作的時候本身是不會用到緩衝區(記憶體)的,是與檔案本身直接操作的,而字元流在操作的時候是使用到緩衝區的

位元組流在操作文件時,即使不關閉資源(close方法),文件也能輸出,但是如果字元流不使用close方法的話,則不會輸出任何內容,說明字元流用的是緩衝區,並且可以使用flush方法強制進行刷新緩衝區,這時才能在不close的情況下輸出內容

那開發中究竟用字節流好還是用字元流好呢?

在所有的硬碟上保存檔案或進行傳輸的時候都是以位元組的方法進行的,包括圖片也是按字節完成,而字元是只有在記憶體中才會形成的,所以使用位元組的操作是最多的。

如果要java程式實作一個拷貝功能,應該選用位元組流進行操作(可能拷貝的是圖片),並且採用邊讀邊寫的方式(節省記憶體)。

以上是JAVA中IO運算的位元組流和字元流實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java 中的完美數 Java 中的完美數 Aug 30, 2024 pm 04:28 PM

Java 完美數指南。這裡我們討論定義,如何在 Java 中檢查完美數?

Java 中的隨機數產生器 Java 中的隨機數產生器 Aug 30, 2024 pm 04:27 PM

Java 隨機數產生器指南。在這裡,我們透過範例討論 Java 中的函數,並透過範例討論兩個不同的生成器。

Java中的Weka Java中的Weka Aug 30, 2024 pm 04:28 PM

Java 版 Weka 指南。這裡我們透過範例討論簡介、如何使用 weka java、平台類型和優點。

Java 中的史密斯數 Java 中的史密斯數 Aug 30, 2024 pm 04:28 PM

Java 史密斯數指南。這裡我們討論定義,如何在Java中檢查史密斯號?帶有程式碼實現的範例。

Java Spring 面試題 Java Spring 面試題 Aug 30, 2024 pm 04:29 PM

在本文中,我們保留了最常被問到的 Java Spring 面試問題及其詳細答案。這樣你就可以順利通過面試。

突破或從Java 8流返回? 突破或從Java 8流返回? Feb 07, 2025 pm 12:09 PM

Java 8引入了Stream API,提供了一種強大且表達力豐富的處理數據集合的方式。然而,使用Stream時,一個常見問題是:如何從forEach操作中中斷或返回? 傳統循環允許提前中斷或返回,但Stream的forEach方法並不直接支持這種方式。本文將解釋原因,並探討在Stream處理系統中實現提前終止的替代方法。 延伸閱讀: Java Stream API改進 理解Stream forEach forEach方法是一個終端操作,它對Stream中的每個元素執行一個操作。它的設計意圖是處

Java 中的時間戳至今 Java 中的時間戳至今 Aug 30, 2024 pm 04:28 PM

Java 中的時間戳記到日期指南。這裡我們也結合範例討論了介紹以及如何在java中將時間戳記轉換為日期。

創造未來:零基礎的 Java 編程 創造未來:零基礎的 Java 編程 Oct 13, 2024 pm 01:32 PM

Java是熱門程式語言,適合初學者和經驗豐富的開發者學習。本教學從基礎概念出發,逐步深入解說進階主題。安裝Java開發工具包後,可透過建立簡單的「Hello,World!」程式來實踐程式設計。理解程式碼後,使用命令提示字元編譯並執行程序,控制台上將輸出「Hello,World!」。學習Java開啟了程式設計之旅,隨著掌握程度加深,可創建更複雜的應用程式。

See all articles