2012-04-15 5 views
3

기기에서 program.txt를 프로그램 방식으로 생성 한 다음 애플리케이션에서 일부 데이터를 기록한 다음이 데이터를 내 기기로 보내려면 어떻게해야합니까? 컴퓨터?기기의 파일에 데이터 쓰기 및 기기에서 다시 읽기 (iPhone)

마지막 부분은 컴퓨터에서 일부 프로그램을 사용하여 프로그래밍 방식으로 장치에서 데이터를 가져 오는 것과 같을 것 같습니다.

지금이 단지가 존재하지 않으면 파일을 생성하고 일부 데이터를 작성하지만 경로에 문제가되는이

NSFileHandle *infile; 
NSFileManager *fm; 
fm=[NSFileManager defaultManager]; 
NSString *strings=[@"/Downloads/file.txt" stringByExpandingTildeInPath]; 

if (![fm fileExistsAtPath:strings]) { 
[fm createFileAtPath:strings contents:nil attributes:nil]; 
infile=[NSFileHandle fileHandleForWritingAtPath:strings]; 
[infile writeData:[[NSString stringWithFormat:@"lalala japierdole\n", [NSDate date]] dataUsingEncoding:NSUTF8StringEncoding]]; 
}else { 
infile=[NSFileHandle fileHandleForWritingAtPath:strings]; 
[infile seekToEndOfFile]; 
} 
[infile writeData:[[NSString stringWithFormat:@"lulukukuioio.\n", [NSDate date]] dataUsingEncoding:NSUTF8StringEncoding]]; 

같은 일을 시까. 이 코드는 내 장치에서이 작업을 시도 할 때 시뮬레이터로 작업 할 때 잘 작동하며, 파일을 작성하고 나중에 수신하는 방법을 알지 못합니다. 파일에 원시 데이터를 기록 &를 읽기위한

+0

제쳐두고, 문자열이 디버거 및/또는'NSLog' 문에서 검증 될 수 있도록 write 문과 별도로 문자열을 만드는 것이 도움이 될 수 있습니다. write 문에는 많은 메소드 호출이 있습니다. 귀하의 질문에 대한 답은 @EricS를 참조하십시오. – zaph

답변

6

가장 쉬운 API를 :

NSData *data = [NSData dataWithContentsOfFile:path]; 
[data writeToFile:path atomically:NO]; 

문제가 발생하는 이유는 경로 장치에 유효하지 않은 것입니다. 이것을 시도하십시오 :

+0

paths.count> 0을 테스트해야하는 이유는 무엇입니까? – user523234

+0

대부분의 편집증. 그것을 테스트하지 않고 비어있는 경우 [paths objectAtIndex : 0]을 호출하면 예외가 발생합니다. 이 특별한 경우에 비어있는 경우는 거의 없지만 사용자가 디렉토리를 이동하고 이름을 바꿀 수 있기 때문에 Mac에서 발생하는 경우가 있습니다. NSFileManager의 createDirectoryAtPath : withIntermediateDirectories : attributes : error 메서드를 사용하여 디렉토리가 존재하지 않으면 아마 디렉토리를 생성 할 것입니다. – EricS

+0

그리고 어떻게이 file.txt를 내 컴퓨터로 가져올 수 있습니까? 이메일을 사용하고 있습니까? 또는 다른 더 나은 옵션이 있습니까? – user1246957