NSFileHandle클래스에서 파일이나 소켓 등을 다룰수 있음.

파일 열기/닫기

NSString *testFile = @"/test.txt";
NSFileHandle * file = [NSFileHandle fileHandleForWritingAtPath:testFile];
if (file == nil){
  // 파일 열기 실패
} else {
  // 파일 열기 성공  

[file closeFile]; 


오프셋이동

NSString *testFile = @"/test.txt";
NSFileHandle * file = [NSFileHandle fileHandleForWritingAtPath:testFile];
[file seekToEndOfFile]; // 파일 끝이동
[file seekToFileOffset:30]; // 30바이트 위치이동 
NSLog(@"오프셋 위치 : %llu", [file offsetInFile]); // 현재 offset 위치
[file closeFile];  

 
파일 데이터 읽기 

NSString *testFile = @"/test.txt";
NSFileHandle * file = [NSFileHandle fileHandleForWritingAtPath:testFile];
[file seekToFileOffset:30]; 
NSLog(@"오프셋 위치 : %llu", [file offsetInFile]); 

NSData *databuffer = [file readDataOfLength:10];

[file closeFile];  


 파일 데이터 쓰기

NSString *testFile = @"/test.txt";
NSFileHandle * file = [NSFileHandle fileHandleForWritingAtPath:testFile];
[file seekToFileOffset:30]; 
NSLog(@"오프셋 위치 : %llu", [file offsetInFile]); 

NSData *databuffer = [file readDataOfLength:10];
[file seekToFileOffset:50]; 
[file writeData:databuffer];

[file closeFile]; 

 
파일 자르기

NSString *testFile = @"/test.txt";
NSFileHandle * file = [NSFileHandle fileHandleForWritingAtPath:testFile];
[file truncateFileAtOffset:0]; // 0은 파일 전체 내용을 제거한다.
[file closeFile]; 

 
Posted by 까칠코더.


티스토리 툴바