Swift에서 파일 입출력 방법과 예제

서론

Swift는 애플의 고급 프로그래밍 언어로, 기존의 Objective-C를 대체하고 iOS, macOS, tvOS, watchOS와 같은 애플 플랫폼을 비롯해 여러 플랫폼에서 사용됩니다. 이번 포스팅에서는 Swift에서 파일 입출력 방법과 예제에 대해 소개하겠습니다. Swift에서 파일 입출력을 하기 위해서는 동일한 프로세스를 따라 해야 합니다. 또한 파일 입출력에 대해 이해한 뒤, 여러 종류의 파일 입출력을 할 수 있는 예제를 살펴보겠습니다.

 

Swift에서 파일 입출력 방법과 예제
-스위프리
(위 사진은 내용과 무관함 Pexels 제공 사진)

 

본론

1. 파일 입출력 방법

Swift에서 파일을 입출력하는 방법은 기본적으로 파일 시스템의 기능을 사용하는 방식과 NSFileManager을 이용하는 방법이 있습니다. 파일 시스템의 기능을 이용하는 방법은 간단한 텍스트 파일을 다루는 데 충분하지만, NSFileManager를 이용하는 방법은 복잡한 파일 구조를 만들어서 사용하는 데 유용합니다. Swift에서 파일을 입출력할 때는 두 방법 모두 사용할 수 있습니다.

– 2. Swift에서 파일 입출력 예제

Swift에서 파일을 입출력하는 예제는 다음과 같습니다.

1. 파일 시스템의 기능을 이용하는 방법

// 파일로 저장

let fileName = “test.txt”

let content = “Hello World!”

let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first

let fileURL = dir.appendingPathComponent(fileName)

do {

try content.write(to: fileURL, atomically: false, encoding: .utf8)

} catch {

print(“Error while writing to file”)

}

// 파일 읽기

do {

let text = try String(contentsOf: fileURL, encoding: .utf8)

print(text)

} catch {

print(“Error while reading from file”)

}

2. NSFileManager을 이용하는 방법

// 파일 생성

let fileName = “test.txt”

let content = “Hello World!”

let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first

let fileURL = dir.appendingPathComponent(fileName)

let fileManager = FileManager.default

fileManager.createFile(atPath: fileURL.path, contents: content.data(using: .utf8), attributes: nil)

// 파일 읽기

let fileManager = FileManager.default

let fileData = fileManager.contents(atPath: fileURL.path)

let text = String(data: fileData!, encoding: .utf8)

print(text)

 

2. 스위프트에서 파일 입출력

스위프트에서 파일 입출력은 스위프트에서 사용하는 가장 기본적인 방법이다. 파일을 읽고 쓸 때 가장 주로 사용하는 방법은 파일매니저라는 객체를 사용하는 방법이다. 파일매니저는 파일이나 디렉토리를 관리하기 위한 객체로, 파일을 검색하거나, 생성하거나, 삭제하거나 복사하거나 등의 작업을 할 수 있다.

파일을 읽고 쓸 때는 FileManager의 contentsOfDirectory 메소드를 사용해 해당 디렉토리의 내용물을 읽어들일 수 있다. contentsOfDirectory 메소드는 해당 디렉토리의 파일 및 디렉토리 목록을 배열로 반환한다. 만약 특정 파일을 읽고 쓰고자 한다면, string변수로 파일 경로를 입력하고, FileManager의 contents 메소드를 사용해 해당 파일의 내용을 스위프트 문자열로 반환하거나, 파일의 내용을 스위프트 문자열로 변경하여 쓸 수 있다.

예를 들어, 파일매니저를 통해 파일 경로에 해당하는 디렉토리의 내용을 읽어보고자 한다면 다음과 같이 코드를 작성할 수 있다.

let fileManager = FileManager.default

let filePath = “파일 경로”

if let contents = try? fileManager.contentsOfDirectory(atPath: filePath) {

// 파일 경로에 해당하는 디렉토리의 목록이 contents 배열에 담겨있음

for content in contents {

print(content)

}

}

 

3. 파일 매니저 사용하기

Swift에서 파일 입출력을 하기 위해 파일 매니저를 사용할 수 있습니다. FileManager는 파일을 생성, 삭제, 이름 변경, 파일 속성 변경 등의 여러가지 작업을 수행할 수 있는 클래스입니다.

아래 예제는 텍스트 파일을 작성하고, 만들어진 파일의 경로를 가져오는 코드입니다.

let fileManager = FileManager.default

let dirPath = fileManager.urls(for: .documentDirectory, in: .userDomainMask)

let filePath = dirPath[0].appendingPathComponent(“test.txt”)

do {

try “Hello world”.write(to: filePath, atomically: true, encoding: .utf8)

print(filePath)

} catch {

print(error)

}

FileManager를 사용하여 파일을 생성하거나 이름 변경 등의 다양한 작업을 수행할 수 있습니다.

 

4. 파일 읽기 예제

Swift에서 파일 읽기는 간단하게 구현할 수 있습니다. 이를 위해서는 FileManager 클래스를 사용합니다. Swift에서 제공하는 기능을 사용하면 파일의 내용을 읽고 이를 메모리 내에 저장할 수 있습니다.

아래 예시는 작성한 파일인 “sample.txt”을 읽어 메모리 내에 저장하는 예제입니다.

let fileManager = FileManager.default

if let dir = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first {

let fileURL = dir.appendingPathComponent(“sample.txt”)

if let fileData = fileManager.contents(atPath: fileURL.path) {

//fileData는 Data 타입으로 되어 있습니다.

let text = String(data: fileData, encoding: .utf8)

}

}

 

5. 파일 쓰기 예제

Swift에서 파일 쓰기는 특정 파일에 데이터를 쓰기 위해 사용됩니다. 파일 쓰기는 특정 파일에 데이터를 쓰기 위해서 매우 중요합니다. 파일 쓰기는 기본적으로 Swift의 파일 관리 API인 FileManager를 사용합니다. 다음은 Swift로 파일에 쓰기를 하는 예제 코드입니다.

let filePath = “document.txt”

let content = “Hello World”

if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {

let fileURL = dir.appendingPathComponent(filePath)

//writing

do {

try content.write(to: fileURL, atomically: false, encoding: .utf8)

}

catch {/* error handling here */}

}

 

Swift에서 파일 입출력 방법과 예제
2-스위프리
(위 사진은 내용과 무관함 Pexels 제공 사진)

 

결론

Swift에서 파일 입출력은 사용자가 정의한 데이터를 외부 파일로 저장하고 불러오는 기능이다. 이것은 응용 프로그램에서 상태를 저장하거나 로그 남기기 등 매우 중요한 역할을 한다. 이 글에서는 Swift에서 파일 입출력 방법과 예제에 대해 알아보겠다.

Swift에서는 두 가지 방법으로 파일 입출력을 할 수 있다. 하나는 FileManager 클래스의 메소드를 사용하는 것이고 다른 하나는 Stream 클래스를 사용하는 것이다.

FileManager 클래스는 파일을 만들고 읽고 쓰고 삭제하는 등 다양한 작업을 수행할 수 있다. 예를 들어, 파일을 만들기 위해서는 다음과 같이 할 수 있다.

let fileManager = FileManager.default

let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first

let fileURL = documentsURL?.appendingPathComponent(“file.txt”)

try? fileManager.createDirectory(at: fileURL!, withIntermediateDirectories: false, attributes: nil)

Stream 클래스는 스트림을 사용하여 파일 입출력을 할 수 있다. 스트림은 입력 스트림과 출력 스트림으로 나뉘는데, 입력 스트림은 파일에서 데이터를 읽고 출력 스트림은 파일에 데이터를 쓴다.

예를 들어, 파일을 읽기 위해서는 다음과 같이 할 수 있다.

let fileURL = documentsURL?.appendingPathComponent(“file.txt”)

let inputStream = InputStream(fileAtPath: fileURL!.path)

inputStream.open()

let data = inputStream.readDataToEndOfFile()

inputStream.close()

파일을 쓰기 위해서는 다음과 같이 할 수 있다.

let outputStream = OutputStream(fileAtPath: fileURL!.path, append: false)

outputStream.open()

let bytesWritten = outputStream.write(data, maxLength: data.count)

outputStream.close()

위에서 살펴본 방법들을 이용하여 Swift에서 파일 입출력을 할 수 있다.

함께 보면 좋은 영상

52. C++ 파일 입출력 File output input

52. C++ 파일 입출력 File output input