Rumah  >  Artikel  >  Java  >  Apakah prinsip dan konsep utama aliran Java I/O?

Apakah prinsip dan konsep utama aliran Java I/O?

WBOY
WBOYasal
2024-04-15 11:12:021124semak imbas

Strim I/O Java menyediakan mekanisme untuk membaca dan menulis data melalui model pengeluar-pengguna, memudahkan komunikasi antara sumber data dan destinasi. Jenis strim dibahagikan kepada strim bait dan strim aksara Strim input digunakan untuk membaca data, dan strim output digunakan untuk menulis data. Konsep utama termasuk penimbalan, penandaan, kaedah baca/tulis dan pemegang fail. Kes praktikal: Apabila membaca teks daripada fail dan menyalinnya ke fail lain, FileInputStream digunakan sebagai aliran input, FileOutputStream digunakan sebagai aliran output, gelung while membaca bait dan menulisnya, dan kaedah flush() menyegarkan penimbal .

Java I/O流的原理和关键概念是什么?

Prinsip dan konsep utama aliran Java I/O

Pengenalan

Mekanisme aliran Java I/O menyediakan abstraksi untuk membaca dan menulis data, memudahkan jenis komunikasi sumber data dan destinasi yang berbeza . Ia berdasarkan model pengeluar-pengguna, di mana pengeluar menjana data dan pengguna menerima serta memprosesnya.

Jenis strim

Strim bait: Baca dan tulis data bait mentah, seperti imej atau fail.
Strim aksara: Baca dan tulis data aksara, diwakili oleh jenis Char, seperti teks atau kod.

Strim Input dan Output

Strim Input: digunakan untuk membaca data daripada sumber data.
Strim output: Digunakan untuk menulis data ke destinasi.

Konsep Utama

  • Penimbalan: Untuk meningkatkan prestasi, strim menggunakan penimbal untuk menyimpan data buat sementara waktu.
  • Markah: Penanda membenarkan aliran mengingati kedudukan semasanya supaya ia boleh membaca semula data kemudian.
  • Kaedah baca dan tulis: Strim menyediakan pelbagai kaedah untuk membaca dan menulis data, seperti read(), write() dan flush(). <code>read()write()flush()
  • 文件句柄: 对于文件 I/O,打开文件时会创建一个文件句柄,该句柄用于识别文件。

实战案例:

考虑以下 Java 代码从文件中读取文本并将其复制到另一个文件中:

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

public class CopyFile {

    public static void main(String[] args) {
        // 源文件
        File sourceFile = new File("source.txt");

        // 目标文件
        File targetFile = new File("target.txt");

        // 创建文件输入流
        try (FileInputStream fis = new FileInputStream(sourceFile);
             // 创建文件输出流
             FileOutputStream fos = new FileOutputStream(targetFile)) {

            // 循环读取源文件中的字节
            int b;
            while ((b = fis.read()) != -1) {

                // 将读取到的字节写入目标文件
                fos.write(b);
            }

            // 刷新目标文件缓冲区
            fos.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在这个例子中:

  • FileInputStream 用作 输入流,用于从 source.txt 文件中读取字节。
  • FileOutputStream 用作 输出流,用于将字节写入到 target.txt 文件中。
  • while 循环读取 source.txt 中的字节并将其写入 target.txt
  • flush() 方法刷新 target.txt
Pemegang Fail: 🎜 Untuk fail I/O, pemegang fail dicipta apabila fail dibuka, yang digunakan untuk mengenal pasti fail. 🎜🎜🎜🎜Contoh Praktikal: 🎜🎜🎜Pertimbangkan kod Java berikut untuk membaca teks daripada fail dan menyalinnya ke fail lain: 🎜rrreee🎜Dalam contoh ini: 🎜🎜🎜🎜FailInputStreamdigunakan sebagai 🎜strim input🎜 untuk membaca bait daripada fail source.txt. 🎜🎜🎜FileOutputStream🎜 digunakan sebagai 🎜strim output🎜 untuk menulis bait ke fail target.txt. 🎜🎜🎜semasa🎜 Bergelung untuk membaca bait dalam source.txt dan menulisnya ke target.txt. Kaedah 🎜🎜🎜flush()🎜 membuang penimbal target.txt untuk memastikan semua bait telah ditulis pada fail. 🎜🎜

Atas ialah kandungan terperinci Apakah prinsip dan konsep utama aliran Java I/O?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn