Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 텍스트 파일을 로드하고 문자 수 세는 방법

개요

Node.js 환경에서 외부 텍스트 파일을 불러와 그 안에 포함된 문자 수를 확인해야 하는 경우가 종종 있습니다. 이번 글에서는 fs 모듈을 활용해 텍스트 파일을 읽고 전체 문자 수를 반환하는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.

문제 상황

예를 들어, Node.js 파일과 같은 디렉터리에 data.txt라는 파일이 있다고 가정해 보겠습니다. 이 파일의 내용은 다음과 같습니다.

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s.

우리가 해야 할 작업은 이 외부 텍스트 파일을 JavaScript 파일로 불러온 뒤, 해당 파일에 포함된 총 문자 수를 반환하는 함수를 작성하는 것입니다.

구현 방법

파일 시스템에 접근하기 위해 Node.js의 기본 내장 모듈인 fs(File System)를 사용합니다. readFileSync 메서드를 호출하면 파일 내용을 동기적으로 읽어올 수 있으며, 두 번째 인자로 인코딩 방식(여기서는 'utf-8')을 지정하면 버퍼(Buffer) 대신 문자열 형태의 데이터를 얻을 수 있습니다.

문자열 데이터를 확보한 후에는 length 속성만으로 간단히 전체 문자 수를 구할 수 있습니다.

코드 예제

const fs = require('fs');

const requireFile = async () => {
    const data = fs.readFileSync('./data.txt', 'utf-8');
    const len = data.length;
    return len;
};

requireFile()
    .then(res => console.log(res))
    .catch(err => {
        console.log('오류가 발생했습니다:', err);
    });

코드 설명

  • fs.readFileSync: 지정한 경('./data.txt')의 파일을 동기적으로 읽어옵니다.
  • 'utf-8': 인코딩 옵션으로, 파일 내용을 사람이 읽을 수 있는 문자열로 변환합니다.
  • data.length: 읽어온 문자열의 전체 문자 수를 반환합니다.
  • async/await 구조: 비동기 처리 패턴으로 작성되어, Promise 체인(.then, .catch)으로 결과와 오류를 처리합니다.

실행 결과

위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.

399

즉, data.txt 파일에는 공백과 줄바꿈을 포함하여 총 399개의 문자가 들어 있는 것입니다.

참고 사항

  • length 값은 공백, 줄바꿈 등 모든 문자를 포함하여 계산됩니다.
  • 비동기 방식으로 처리하고 싶다면 fs.promises.readFile() 또는 fs.readFile()을 사용할 수도 있습니다.
  • ES 모듈 환경이라면 import fs from 'fs' 형태로 모듈을 가져올 수 있습니다.