首頁 > Java > java教程 > 主體

使用 Java Streams 進行檔案輸入/輸出的技巧

PHPz
發布: 2024-07-21 15:06:38
原創
730 人瀏覽過

什麼是 Java 輸入/輸出?

Java 輸入/輸出(I/O)用於處理輸入並產生檔案形式的輸出。 Java 使用流的概念,它允許快速 I/O 操作。
使用java.io套件,可以輕鬆執行所有輸入輸出操作。

使用輸入/輸出在 Java 中處理檔案

直播

流可以定義為由位元組組成的資料序列。它被稱為溪流,因為它就像一條持續流動的水流。 Stream 有兩種類型:

輸入流:用於從來源讀取資料。這可以是檔案、陣列、週邊設備或套接字。
輸出流:用於將資料寫入目的地。這可以是檔案、陣列、週邊設備或套接字。
輸入流的流程如下圖所示:

Image description

位元組流

Java位元組流用於執行8位元組的輸入和輸出。以下是使用這兩個類別將輸入檔案複製到輸出檔案的範例 -

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class LearnStream {
    public static void main(String[] args) throws IOException {

       var directory = "D://sample/stream/";
       var fileInput = new FileInputStream(directory+"input.txt");
       var fileOutput = new FileOutputStream(directory+"output.txt");

       try{
           int i;
           while((i= fileInput.read())!=-1){
               fileOutput.write(i);
           }
       } catch (IOException e) {
           throw new RuntimeException(e);
       }

    }

}

登入後複製

現在我們有一個包含以下內容的檔案 input.txt

Dimas Priyandi
Software Developer
Java
Angular 
Spring Boot
登入後複製
登入後複製

運行程序,我們得到一個名為output.txt的文件,其中包含以下內容

Dimas Priyandi
Software Developer
Java
Angular 
Spring Boot
登入後複製
登入後複製

範例

為了更好地理解檔案輸入流和檔案輸出流,讓我們建立一個新範例,其中有一個名為 count.txt 的輸入檔案。

count.txt內容如下:

100
90
80
70
60
50
40
30
20
10
0
登入後複製

當檔案輸入流從檔案 count.txt 讀取數值資料時,我們會將其儲存在陣列中,然後執行求和操作來計算資料的總和。請依照以下程式碼操作:

import java.io.*;

public class LeanCount {
    public static void main(String[] args) throws FileNotFoundException {
        var directory = "D://sample/stream/";
        var fileInput = new FileInputStream(directory+"count.txt");
        var fileOutput = new FileOutputStream(directory+"sum.txt");
        Integer sum = 0;
        try{
            var reader = new BufferedReader(new InputStreamReader(fileInput));
            var outputWriter = new BufferedWriter(new OutputStreamWriter(fileOutput));
            String line;
            while((line=reader.readLine()) !=null){
                sum+=Integer.parseInt(line);
            }
            reader.close();
            outputWriter.write(sum.toString());
            outputWriter.close();


        } catch (IOException e) {
            throw new RuntimeException(e);
        }

    }

    }



登入後複製

輸出:

  • 我們可以看到 sum.txt 的輸出是:
550
登入後複製

說明:

  • FileInputStream:用於從檔案 count.txt 讀取位元組。
  • InputStreamReader:將FileInputStream讀取的位元組轉換為字元。
  • BufferedReader:提供readLine()方法來逐行讀取檔案。
  • 數字數組:一個整數數組,用於儲存從檔案中讀取的數字。
  • 求和計算:循環對數組中儲存的所有數字求和。
  • FileOutputStream:用於將位元組寫入檔案。
  • OutputStreamWriter:將字元流轉換為位元組流。
  • BufferedWriter:為高效率寫入字元、陣列和行提供緩衝。

總結

Java 的 I/O 流提供了一種處理文件操作的強大方法。透過使用 InputStream 和 OutputStream 及其緩衝對應項,您可以有效地讀取和寫入檔案。

以上是使用 Java Streams 進行檔案輸入/輸出的技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!