프로그래밍백엔드 개발자 (VB.NET)

Visual Basic에서 입출력(I/O) 작업은 어떻게 이루어지며, 파일 읽기 및 쓰기 방법은 무엇인지, 리소스 관리의 세부 사항은 무엇입니까?

Hintsage AI 어시스턴트로 면접 통과

답변.

Visual Basic에서는 전통적인 절차(FileOpen, Input, Put, Close)와 .NET API(System.IO.StreamReader, StreamWriter, FileStream)를 통해 파일 작업을 지원합니다. .NET 클래스를 사용하는 것이 선호됩니다.

세부 사항:

  • 리소스를 자동으로 해제하기 위해 Using 구문을 사용하는 것이 좋습니다.
  • 큰 파일을 작업할 때는 버퍼링을 사용하는 것이 편리합니다.
  • 문자열을 읽고 쓰려면 StreamReader/StreamWriter를 사용하고, 바이트에는 FileStream을 사용합니다.
  • 파일 접근 시 발생할 수 있는 예외(접근 오류, 잠금)를 처리하십시오.

코드 예시:

Dim filePath As String = "test.txt" ' 파일에 쓰기 Using writer As New StreamWriter(filePath) writer.WriteLine("Hello, world!") End Using ' 파일에서 읽기 Using reader As New StreamReader(filePath) Dim content As String = reader.ReadToEnd() End Using

속임수가 있는 질문.

StreamWriter를 사용하여 파일에 쓰고 이후에 스트림을 닫지 않으면 어떤 일이 발생하며, Using 구문을 사용하는 것이 중요한 이유는 무엇입니까?

답변: 스트림을 닫지 않으면(Close를 호출하지 않거나 Using을 사용하지 않으면) 버퍼링된 데이터가 메모리에 저장되며 디스크에 기록되지 않을 수 있습니다. 또한 닫히지 않은 스트림은 파일 설명자를 유지하므로 파일이 다른 프로세스에서 잠길 수 있고, 장기 실행 애플리케이션에서는 메모리 및 리소스 누수로 이어질 수 있습니다. Using 구문은 예외가 발생하더라도 Dispose가 호출되도록 보장합니다.

주제의 세부 사항을 몰라서 발생한 실제 오류 예시.


이야기

데이터의 갑작스러운 손실: 은행에서 보고서를 생성할 때 개발자가 StreamWriter를 닫지 않았습니다. 그 결과, 해제되지 않은 버퍼 때문에 일부 데이터가 파일에 기록되지 않았고, 고객 서비스 부서는 최종 보고서를 열 수 없었습니다.


이야기

파일 설명자 누수: ERP 시스템에서 개발자들은 파일을 수동으로 열고 Close를 호출하는 것을 종종 잊었습니다. 며칠 후, 애플리케이션은 열린 파일의 한계 초과로 실패했습니다.


이야기

파일 잠금 충돌: 네트워크 백업 서비스에서 파일이 올바른 접근 모드 없이 열려 다른 프로그램의 접근을 차단하여 전체 부서에 장시간 중단이 발생했습니다.