마지막으로 생성된 파일의 위치는 iPhone Simulator에서 실행했을 때와 실제 Device에서 실행했을 때 각각 다릅니다. 아래 주석으로 그 패스를 설명해놓았으니, 실행해 보신 후 해당 패스를 가보시면 파일이 만들어져 있는것을 확인해 볼 수 있습니다.
- (void) TestFile_ReadWrite {
/////////////////////////////////////////////////////////////////////////////
// 파일 시스템의 디렉터리 및 파일 준비
/*
Document Directory Full Path
--------------------------
iPhone Simulator : /Users/kyungmincho/Library/Application Support/iPhone Simulator/User/Applications/7AE9E3F3-3347-4B73-BA73-DCF6A9AFA57B/Documents/
Actual Device : /var/mobile/Applications/7AE9E3F3-3347-4B73-BA73-DCF6A9AFA57B/Documents/
*/
// Get documents directory
NSArray *arrayPaths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory,
NSUserDomainMask,
YES);
NSString* docDir = [arrayPaths objectAtIndex:0];
NSString *filePath = [docDir stringByAppendingString:@"/test.txt"];
// 먼저 파일을 생성한다.
[[NSFileManager defaultManager] createFileAtPath:filePath contents:nil attributes:nil];
/////////////////////////////////////////////////////////////////////////////
// 리소스 안에 하려면 Workspace의 Resources에서 AddFile/Mac OSX/Empty file로 추가함.
// 실행 파일 내 리소스에 있는 파일을 열어서 수정하고자 하면 아래 패스 사용
//NSString *filePath = [NSString stringWithFormat: @"%@/test.txt", [[NSBundle mainBundle] resourcePath]];
NSLog(filePath);
// 파일에 기록할 내용을 마련한다.
NSString* sText = [NSString stringWithFormat: @"Hello world modified"];
NSUInteger nLen = [sText length];
// NSFileHandle이 사용하는 파일 저장용 데이터 타입은 NSData이다
NSData* pData = [sText dataUsingEncoding:NSUTF8StringEncoding];
////////////////////////////////////////////////////////////////////////
// 파일 쓰기 테스트
// 파일을 연다.
NSFileHandle *hFile = [NSFileHandle fileHandleForWritingAtPath:filePath];
if ( hFile == nil )
{
NSLog(@"no file to write");
return ;
}
// 파일을 쓰고 파일 포인터를 전진하고 파일을 닫는다.
[hFile writeData:pData];
[hFile truncateFileAtOffset:nLen];
[hFile closeFile];
////////////////////////////////////////////////////////////////////////
// 파일 쓰기 테스트
// 파일을 연다.
NSFileHandle *hFile2 = [NSFileHandle fileHandleForReadingAtPath:filePath];
if ( hFile2 == nil )
{
NSLog(@"no file to read");
return ;
}
// 파일을 읽고 파일을 닫는다.
NSData* pData2 = [hFile2 readDataOfLength:nLen];
[hFile2 closeFile];
// NSData를 화면에 출력할 수 있는 NSString 타입을 변환한다.
NSString* sReadString = [[NSString alloc] initWithData:pData2 encoding:NSUTF8StringEncoding];
// 디버그 콘솔에 내용을 출력한다.
NSLog(sReadString);
}
/////////////////////////////////////////////////////////////////////////////
// 리소스 안에 하려면 Workspace의 Resources에서 AddFile/Mac OSX/Empty file로 추가함.
// 실행 파일 내 리소스에 있는 파일을 열어서 수정하고자 하면 아래 패스 사용
//NSString *filePath = [NSString stringWithFormat: @"%@/test.txt", [[NSBundle mainBundle] resourcePath]];
'KB > iPhone 개발' 카테고리의 다른 글
Cocos2d for iPhone - 2D Game Library (0) | 2009.03.16 |
---|---|
Flip4Mac - 맥에서 windows media stream 보기 (2) | 2009.03.06 |
iPhone: TabBarItem Image 설정하기 (0) | 2009.01.28 |
iPhone FlipView 뷰 전환 애니메이션 (1) | 2009.01.24 |
iPhone: Editing on UITableView (0) | 2009.01.23 |