>  기사  >  Java  >  Java I/O 스트림의 원리와 핵심 개념은 무엇입니까?

Java I/O 스트림의 원리와 핵심 개념은 무엇입니까?

WBOY
WBOY원래의
2024-04-15 11:12:021115검색

Java I/O 스트림은 생산자-소비자 모델을 통해 데이터를 읽고 쓰는 메커니즘을 제공하여 데이터 소스와 대상 간의 통신을 단순화합니다. 스트림 유형은 바이트 스트림과 문자 스트림으로 구분됩니다. 입력 스트림은 데이터를 읽는 데 사용되며 출력 스트림은 데이터를 쓰는 데 사용됩니다. 주요 개념에는 버퍼링, 표시, 읽기/쓰기 방법 및 파일 핸들이 포함됩니다. 실제 사례: 파일에서 텍스트를 읽고 이를 다른 파일에 복사할 때 FileInputStream은 입력 스트림으로 사용되고 FileOutputStream은 출력 스트림으로 사용되며 while 루프는 바이트를 읽고 쓰고 플러시() 메서드는 버퍼를 새로 고칩니다. .

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

Java I/O 스트림의 원리와 핵심 개념

소개

Java I/O 스트림 메커니즘은 데이터 읽기 및 쓰기에 대한 추상화를 제공하여 다양한 유형의 데이터 소스 및 대상 간 통신을 단순화합니다. . 생산자가 데이터를 생성하고 소비자가 이를 받아 처리하는 생산자-소비자 모델을 기반으로 합니다.

스트림 유형

바이트 스트림: 이미지나 파일과 같은 원시 바이트 데이터를 읽고 씁니다.
문자 스트림: 텍스트 또는 코드와 같이 Char 유형으로 표시되는 문자 데이터를 읽고 씁니다.

입력 및 출력 스트림

입력 스트림: 은 데이터 소스에서 데이터를 읽는 데 사용됩니다.
출력 스트림: 대상에 데이터를 쓰는 데 사용됩니다.

주요 개념

  • 버퍼링: 성능을 향상시키기 위해 스트림은 버퍼를 사용하여 데이터를 임시 저장합니다.
  • 마크: 마커를 사용하면 스트림이 현재 위치를 기억하여 나중에 데이터를 다시 읽을 수 있습니다.
  • 읽기 및 쓰기 방법: 스트림은 read(), write() flash(). <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
파일 핸들: 🎜 파일 I/O의 경우 파일을 열 때 파일 핸들이 생성되어 파일을 식별하는 데 사용됩니다. 🎜🎜🎜🎜실제 예: 🎜🎜🎜파일에서 텍스트를 읽고 다른 파일에 복사하려면 다음 Java 코드를 고려하세요. 🎜rrreee🎜이 예에서는: 🎜🎜🎜🎜FileInputStream 🎜이 사용됩니다. source.txt 파일에서 바이트를 읽기 위한 🎜입력 스트림🎜으로 사용됩니다. 🎜🎜🎜FileOutputStream🎜은 target.txt 파일에 바이트를 쓰기 위한 🎜출력 스트림🎜으로 사용됩니다. 🎜🎜🎜while🎜 source.txt의 바이트를 읽고 target.txt에 쓰는 루프입니다. 🎜🎜🎜flush()🎜 메서드는 target.txt의 버퍼를 플러시하여 모든 바이트가 파일에 기록되었는지 확인합니다. 🎜🎜

위 내용은 Java I/O 스트림의 원리와 핵심 개념은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.