ホームページ  >  記事  >  Java  >  ファイル入出力に Java ストリームを使用する場合のヒント

ファイル入出力に Java ストリームを使用する場合のヒント

PHPz
PHPzオリジナル
2024-07-21 15:06:38860ブラウズ

Java 入出力とは何ですか?

Java 入出力 (I/O) は、入力を処理し、ファイル形式で出力を生成するために使用されます。 Java はストリームの概念を使用しており、高速な I/O 操作が可能です。
java.io パッケージを使用すると、すべての入出力操作を簡単に実行できます。

入出力を使用した Java でのファイルの処理

ストリーム

ストリームは、バイトで構成されるデータのシーケンスとして定義できます。流れ続ける水の流れに似ていることからストリームと呼ばれます。ストリームには 2 種類あります:

入力ストリーム: ソースからデータを読み取るために使用されます。これは、ファイル、配列、周辺デバイス、またはソケットである可能性があります。
出力ストリーム: 宛先にデータを書き込むために使用されます。これは、ファイル、配列、周辺デバイス、またはソケットである可能性があります。
入力ストリームのフローを以下に示します。

Image description

ストリームへのバイト

Java バイト ストリームは、8 ビット バイトの入出力を実行するために使用されます。以下は、これら 2 つのクラスを使用して入力ファイルを出力ファイルにコピーする例です -

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: ファイルを 1 行ずつ読み取る readLine() メソッドを提供します。
  • 数値配列: ファイルから読み取られた数値を格納する整数配列。
  • 合計計算: 配列に格納されているすべての数値を合計するループ。
  • FileOutputStream: ファイルにバイトを書き込むために使用されます。
  • OutputStreamWriter: 文字ストリームをバイト ストリームに変換します。
  • BufferedWriter: 文字、配列、行を効率的に書き込むためのバッファリングを提供します。

概要

Java の I/O ストリームは、ファイル操作を処理する強力な方法を提供します。 InputStream と OutputStream、およびそれらのバッファリングされた対応物を使用すると、ファイルの読み取りと書き込みを効率的に行うことができます。

以上がファイル入出力に Java ストリームを使用する場合のヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。