본문 바로가기

프로그래밍/iOS

[ios] 한 파일에 NSString 여러번 저장하기


예에전에 써둔

2015/04/09 - [프로그래밍/iOS] - [ios] 현재시간 가져오기, NSString 파일로 저장




에서 

[NSString writeToFile: atomically: encoding: error: ];

위 함수는 매번 파일을 덮어쓰기 때문에 여러번 실행할 경우 가장 마지막 문장만 저장된다.

그렇게 말고 매번 같은 파일에 이어서 쓰고 싶어서 좀 찾아본 결과 아래와 같이 하면 된다.

 

 

NSString *timeString = @"메렁";

NSString *path = [NSTemporaryDirectory()

                          stringByAppendingPathComponent:[NSString stringWithFormat:@"result.txt"]];

        NSFileManager* fileMgr = [NSFileManager defaultManager];

        if ([fileMgr fileExistsAtPath:path]) //파일이 존재하면 파일의 맨 끝을 찾아 그 곳에 해당 값을 저장

        {

            NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:path];

            [handle truncateFileAtOffset:[handle seekToEndOfFile]];

            [handle writeData:[timeString dataUsingEncoding:NSUTF8StringEncoding]];

            [handle closeFile];

        }

        else // 파일이 존재하지 않으면 파일을 생성하고 해당 값을 저장

        {

            [fileMgr createFileAtPath:path contents:[timeString dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];

 

        }