Blob과 File,

  • Blob은 JavaScript의 기본 형식이 아닌 데이터를 나타낼 수도 있습니다.

  • File은 blob 인터페이스를 상속하고 확장하여 사용자 시스템의 파일을 지원하는 blob 기반 인터페이스입니다.

  • Blob 및 File은 생성자에 의해 인스턴스화됩니다.

import { useState, useEffect } from "react";

const IoComponent = ({setTexts, texts}) => {
    const (url, setUrl) = useState("");

    useEffect(() => {
        const blob = new Blob((texts), {type: "text/plain"});
        const file = new File((blob), "your_text.txt");
        const url = URL.createObjectURL(file);
        setUrl(url);
    }, (texts));

    return (
      <div>
          <a href={url} download="your_text.txt" >다운로드</a>
      </div>
    );
}

export default IoComponent;
  • 위의 코드는 텍스트가 변경될 때 새 File 개체와 다운로드 링크를 만듭니다.

  • 다운로드 버튼을 클릭하여 파일(.txt)을 다운로드합니다.

import { useState } from "react";

const IoComponent = ({setTexts, texts}) => {
    const (url, setUrl) = useState("");

    const inputFileHandler = (e) => {
        const file = e.target.files(0);

        const fileReader = new FileReader();
        fileReader.readAsText(file);
        
        fileReader.onload = () => {
            // 기존 텍스트에 읽은 파일의 텍스트 추가
            setTexts(texts + "\n" + fileReader.result);             
        };        
    }

    return (
      <div>
          <input type="file" onChange={inputFileHandler}/>
      </div>
    );
}

export default IoComponent;
  • 위 코드에는 파일을 받을 수 있는 input 태그가 있습니다.

  • 제공된 파일(.txt)을 FileReader 객체로 읽어 기존 텍스트 끝에 추가합니다.

https://developer.mozilla.org/en/docs/Web/API/Blob

https://developer.mozilla.org/en/docs/Web/API/File

파일 – 웹 API | MDN

파일 인터페이스는 파일에 대한 정보를 제공하고 웹 페이지에서 JavaScript를 사용하여 파일 내용에 액세스할 수 있도록 합니다.

developer.mozilla.org