2012-05-11 6 views
0

私はcsvファイルを作成しようとしています。手元に2つの配列があります - タイトル(名前、番号など)、実際の値(Jon、123 ...)の配列writeToFileの使用:アトミック:連続して動作しません...なぜですか?

[[titles componentsJoinedByString:@", "] writeToFile:file atomically:YES]; 

[[values componentsJoinedByString:@", "] writeToFile:file atomically:YES]; 

値のみ配列がファイルに書き込まれます。次の2種類の操作をした後、今

、。ファイルをもう一度開く必要があるかもしれないことに気付きましたが、最初の配列を書き終わった後はどうすればいいですか?それとも、そうでない場合は間違っているのですか?

ありがとうございます!

答えて

1

2行目は実際に1行目に書き込んだファイルを上書きしています。この問題を回避する簡単な方法の1つは、2番目の文字列を最初の文字列に追加するだけです(CSVファイルを作成しているので、間に '\ n'を付けて)、その文字列をファイルに書き込んでください:

+0

感謝を:)別の行を追加する必要が

[[titles componentsJoinedByString:@", "] writeToFile:file atomically:YES]; 

最初の行を書きます。結論として、 "writeToFile:atomically"を同じファイルで2回使用することはできないのですか? –

0

2回目に古い内容を置き換えます。古いコンテンツを読んだり、新しいコンテンツを古いコンテンツに追加したり、ファイルに保存したりすることができます。

はあなたたびに、私は何かが欠けている知っていた

NSString *previousContent = [[NSString alloc] initWithContentsOfFile:file usedEncoding:nil error:nil]; 
NSString *str2 = [[values componentsJoinedByString:@", "]; 
NSString *outputStr = [previousContent stringByAppendingFormat:@"\n%@", str2]; 
[outputStr writeToFile:file atomically:YES]; 
関連する問題