텍스트 파일에서 정수를 읽고 쓰는 방법은 무엇입니까? 여러 줄로 읽거나 쓸 수 있습니까? 즉, 여러 정수를 처리 할 수 있습니까?.txt 파일과의 정수 읽기 및 쓰기
감사합니다.
텍스트 파일에서 정수를 읽고 쓰는 방법은 무엇입니까? 여러 줄로 읽거나 쓸 수 있습니까? 즉, 여러 정수를 처리 할 수 있습니까?.txt 파일과의 정수 읽기 및 쓰기
감사합니다.
이것은 확실히 가능합니다. 단순히 텍스트 파일의 정확한 형식에 따라 달라집니다. 텍스트 파일의 내용을 읽기
쉽습니다 : 전체 파일을 포함하는 오토 릴리즈 캐릭터를 생성
// If you want to handle an error, don't pass NULL to the following code, but rather an NSError pointer.
NSString *contents = [NSString stringWithContentsOfFile:@"/path/to/file" encoding:NSUTF8StringEncoding error:NULL];
. 파일에 포함 된 모든 정수의 경우, 당신은이를 쓸 수 있습니다 : 파일 (하나 개의 정수를 포함하는 각 라인) 여러 행으로 분할되어
NSInteger integer = [contents integerValue];
경우, 당신이 그것을 분할해야합니다 :
NSArray *lines = [contents componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
for (NSString *line in lines) {
NSInteger currentInteger = [line integerValue];
// Do something with the integer.
}
전반적으로 매우 간단합니다.
파일로 다시 쓰는 것도 아주 쉽습니다. 일단 문자열로 되돌아 가길 원한다면 다음을 사용할 수 있습니다 :
NSString *newContents = ...; // New string.
[newContents writeToFile:@"/path/to/file" atomically:YES encoding:NSUTF8StringEncoding error:NULL];
문자열을 쓸 수 있습니다. 물론, 당신은 설정으로 재생할 수 있습니다. atomically
에서 YES
으로 설정하면 테스트 파일에 먼저 쓰고 확인한 다음 이전 파일을 복사하여 이전 파일을 바꿉니다. 이렇게하면 오류가 발생해도 파일이 손상되지 않습니다. 원한다면 다른 인코딩을 사용할 수 있지만 (실제로는 NSUTF8StringEncoding
권장) 오류를 잡으려면 (본질적으로해야 할) NSError
에 대한 참조를 메서드에 전달하면됩니다. 그것은 다음과 같이 보일 것입니다 :
NSError *error = nil;
[newContents writeToFile:@"someFile.txt" atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (error) {
// Some error has occurred. Handle it.
}
를 추가 읽기를 들어, NSString Class Reference를 참조하십시오.
여러 줄로 작성해야하는 경우 newContents
문자열을 작성할 때 \r\n
을 사용하여 줄 바꿈을 배치 할 위치를 지정하십시오.
NSMutableString *newContents = [[NSMutableString alloc] init];
for (/* loop conditions here */)
{
NSString *lineString = //...do stuff to put important info for this line...
[newContents appendString:lineString];
[newContents appendString:@"\r\n"];
}
어떻게하면 여러 줄을 쓸 수 있습니까? Apple 문서에 따르면'writeToFile'은 호출 될 때마다 이전 파일을 삭제할 것이므로 여러 개의'writeToFile' 호출을 반복하는 것만으로는 작동하지 않습니다. 'newLineCharacterSet'으로 작성하는 방법이 있습니까? – GeneralMike
알 겠어 - 쓰기 위해'newLineCharacterSet'을 전혀 사용하지 않지만'\ r \ n'을 사용하여 줄 바꿈을 지정할 수 있습니다. 자세한 내용은 내 대답을 확인하십시오. – GeneralMike