2011-10-25 182 views
0

我正在嘗試使用我的應用中發生的操作製作一個txt日誌文件。我希望在應用程序連接到服務器時保存一些文本,以顯示新信息。將數據寫入文件

那麼,如何寫入文件?我試過使用方法writeToFile:但它不工作,因爲fileExistsAtPath:正在返回NO。

我的代碼是:

NSString *file_path = @"mylog.txt"; 
NSString *log = @"Hello World!!\n"; 
[log writeToFile:file_path atomically:YES encoding:NSUnicodeStringEncoding error:nil]; 

謝謝!

PS:哦,它可以通過組織者與iPhone插入可讀嗎?

回答

1

您應該使用< APP_HOME>/Documents文件夾中存儲的文檔

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *file_Path = [documentsDirectory stringByAppendingPathComponent:@"log.txt"];  
[log writeToFile:file_path atomically:YES encoding:NSUnicodeStringEncoding error:nil]; 

但一般來說,如果你想看到,當運行應用程序, 你可以只使用的NSLog(轉儲的東西),輸出它在控制檯。

+0

我使用NSLog,但有很多行不是來自我的應用程序。而且,我想看看在我的應用程序中發生了什麼,例如,在打洞日期間,我無法隨身攜帶筆記本電腦並每隔5分鐘看一次,呵呵。我會試着用你的代碼,謝謝。 – Ibai

+0

Okay Gotschi,它現在正在工作!是否有機會附加文本而不是重寫信息?謝謝! – Ibai

+1

NSString的writeToFile不能附加。您可以使用通過fileHandleForUpdatingAtPath創建的NSFileHandle,然後使用writeData:不斷向其寫入數據。還有一些第三方iOS日誌記錄工具可能更易於使用。 – EricS

1

試試這個方法,我寫道:

+(NSString*)createPath:(NSString*)fileName{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *localizedPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",fileName]]; 

    //NSLog(@"%@",localizedPath); 
    return localizedPath; 
} 

這將返回的路徑爲您的文件。你只需要給它一個名字。