Objective C - 创建文本文件以在 Cocoa 中逐行读取和写入

     2023-02-24     13

关键词:

【中文标题】Objective C - 创建文本文件以在 Cocoa 中逐行读取和写入【英文标题】:Objective C - Create text file to read and write line by line in Cocoa 【发布时间】:2013-07-20 17:17:28 【问题描述】:

我正在构建一个 Mac 应用程序,我有 2 个问题:

    我想创建一个文本文件来读取和写入数据。我不知道如何创建一个文本文件来读取和写入数据。是否使用 结构? 我想创建一个 XML 文件来读取和写入数据。我可以为 XML 创建一个结构吗?

你有什么建议吗?提前致谢

【问题讨论】:

看看***.com/a/3711079/944634 【参考方案1】:

好吧,要创建一个文件,只需使用

[[NSFileManager defaultManager] createFileAtPath:@"Your/Path" contents:nil attributes:nil];

这将创建一个空文件,您可以对其进行写入或读取。要编写文本(或 XML),只需像这样使用NSStringwriteToFile:atomically:encoding:error: 方法

NSString *str = //Your text or XML
[str writeToFile:"Your/Path" atomically:YES encoding:NSUTF8StringEncoding error:nil];

要从文件中读取,只需使用该文件的内容创建一个NSString

NSString *contents = [NSString stringWithContentsOfFile:@"Your/Path"];

或者,如果它不包含字符串,则从文件中获取NSData 对象

NSData *contents = [NSData dataWithContentsOfFile:@"Your/Path"];

【讨论】:

?你这是什么意思? 我有一个问题:我可以使用 struct 来保存文件中的数据吗? 您可以使用结构来保存文件中的信息,但如果您使用的是objective c,我建议您使用一个类,例如名为File的类,然后在该类(文件名、大小、内容等)。 NSString *str = //你的文本或 XML [str writeToFile:"Your/Path" atomically:YES encoding:NSUTF8StringEncoding error:nil];可以使用 NSMutablearray 代替 NSString 吗? 你可以,但是那会把数据写成plist,它是XML的一种形式。【参考方案2】:
/**************************main.m******************************
    NS FILE HANDLE READ & WRITE
    reading and writing in same file
    Created by abdulsathar on 6/16/14.
***************************************************************/

#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])

   @autoreleasepool  //ARC
    
        NSFileHandle *file;
        //object for File Handle
        NSError *error;
        //crearing error object for string with file contents format
        NSMutableData *writingdatatofile;
        //create mutable object for ns data
        NSString *filePath=[NSString stringWithFormat:@"/Users/chandrakumar/Documents/abdul/doc.txt"];
        //telling about File Path for Reading for easy of access
        file = [NSFileHandle fileHandleForReadingAtPath:@"/Users/chandrakumar/Documents/abdul/doc.txt"];
        //assign file path directory
            if (file == nil) //check file exist or not
                NSLog(@"Failed to open file");
        NSString *getfileContents = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
        //access file contents with out ns handle method
            if (error) //check error flag for file present or not
                NSLog(@"Error reading file: %@", error.localizedDescription);
        NSLog(@"contents: %@", getfileContents);
        //display file contents in main file
        NSArray *listArray = [getfileContents componentsSeparatedByString:@"\n"];
        //caluculate list of line present in files
        NSLog(@"items = %ld", [listArray count]);
        const char *writingchar = "how are you";
        writingdatatofile = [NSMutableData dataWithBytes:writingchar length:strlen(writingchar)];
        //convert string format into ns mutable data format
        file = [NSFileHandle fileHandleForUpdatingAtPath: @"/Users/chandrakumar/Documents/abdul/new.txt"];
        //set writing path to file
            if (file == nil) //check file present or not in file
                NSLog(@"Failed to open file");
        [file seekToFileOffset: 6];
        //object pointer initialy points the offset as 6 position in file
        [file writeData: writingdatatofile];
        //writing data to new file
        [file closeFile];
        //close the file
    
    return 0;`enter code here`


/***********************************OUTPUT********************************************

 2014-06-17 14:55:39.695 storage[4075:303] contents: hello how are you my dearservice

*************************************************************************************/

【讨论】:

如何在Objective c中获取目录中文件的创建日期

】如何在Objectivec中获取目录中文件的创建日期【英文标题】:HowdoyougetthecreationdateoffilesinadirectoryinObjectivec【发布时间】:2014-01-0620:42:56【问题描述】:我正在学习Objective-C,我正在将Applescript实用程序转换为Objective-C。我需要了... 查看详情

Objective-c 保存原始文本

】Objective-c保存原始文本【英文标题】:Objective-csavingrawtext【发布时间】:2009-12-2615:05:49【问题描述】:我在基于文档的应用程序中实现了保存和加载方法。在保存方法中,我有[NSArchiverarchivedDataWithRootObject:[selfstring]];[selfstring]是... 查看详情

使用 Objective C 从 CSV 文件创建数组

】使用ObjectiveC从CSV文件创建数组【英文标题】:CreatinganArrayFromaCSVFileUsingObjectiveC【发布时间】:2012-04-1816:47:35【问题描述】:我是编码新手,所以如果这似乎是一个简单的问题,请原谅。我正在尝试在地图上绘制坐标。我想读... 查看详情

单击按钮以在按钮下方显示 Nib

...ton【发布时间】:2017-11-2707:45:31【问题描述】:我想使用Objective-C创建一个看起来像手风琴的功能。我有多个动态创建的按钮。当用户单击任何按钮时,我想在单击的按钮下方显示nib文件。请注意,一次只能单击一个按钮并在其... 查看详情

在 Xcode 中以编程方式创建文件夹 - Objective C

】在Xcode中以编程方式创建文件夹-ObjectiveC【英文标题】:CreateAFolderProgrammaticallyInXcode-ObjectiveC【发布时间】:2012-06-2510:37:48【问题描述】:我正在使用以下代码行将我的yoyo.txt文件保存在Documents文件夹中::NSString*docDir=[NSHomeDirectory... 查看详情

从服务器 Objective C 或 Swift 下载文件

】从服务器ObjectiveC或Swift下载文件【英文标题】:DownloadingFilesfromserverObjectiveCorSwift【发布时间】:2014-11-1300:58:37【问题描述】:如何将音频文件从我的服务器下载到用户的手机以在应用程序中使用?当我转到网站链接时,JSON代... 查看详情

Objective C - 从这个 PaintCode 代码创建 UIImage

】ObjectiveC-从这个PaintCode代码创建UIImage【英文标题】:ObjectiveC-CreateUIImagefromthisPaintCodecode【发布时间】:2014-10-0217:59:26【问题描述】:我正在使用PaintCode,它生成了一些代码来创建一个带有文本覆盖的形状。我想使用代码来解析... 查看详情

带有分隔线的Objective C UIButton并在选择时更改文本颜色

】带有分隔线的ObjectiveCUIButton并在选择时更改文本颜色【英文标题】:ObjectiveCUIButtonwithdividerandchangestextcolorwhenselected【发布时间】:2018-08-1502:25:12【问题描述】:我创建了一行UIButtons,并在其上添加了一周的日期和日期作为UILabe... 查看详情

从文档目录中的文件夹创建 ZIP 文件 - Objective C (ARC)

】从文档目录中的文件夹创建ZIP文件-ObjectiveC(ARC)【英文标题】:CreatingaZIPfilefromafolderindocumentsdirectory-ObjectiveC(ARC)【发布时间】:2012-07-2512:15:03【问题描述】:我有一个使用ARC开发的iPhone应用程序。我的文档目录中有一个文件夹... 查看详情

C/C++/Objective-C 文本识别库 [关闭]

】C/C++/Objective-C文本识别库[关闭]【英文标题】:C/C++/Objective-Ctextrecognitionlibrary[closed]【发布时间】:2011-06-1809:06:29【问题描述】:有人知道C/C++/Objective-C中的任何免费/开源文本识别库吗?基本上可以扫描图像并读出所有纯文本的... 查看详情

创建批处理文件以在多个文件夹中创建多个文件夹

】创建批处理文件以在多个文件夹中创建多个文件夹【英文标题】:Createabatchfiletocreatemultiplefolderswithinmanyfolders【发布时间】:2012-10-0913:42:13【问题描述】:我正在尝试创建一个批处理文件,它将在给定文件夹的所有子文件夹中... 查看详情

更改缓冲区大小以在 C 中复制文件

...ocopyfileinC【发布时间】:2018-06-2405:52:39【问题描述】:我创建了一个创建文件副本的函数:读取-->缓冲区-->写入。我正在尝试多次增加缓冲区大小,看看是否会影响复制文件所需的时间(大约50Mb)#include<assert.h>#include<... 查看详情

Objective C 内存泄漏

】ObjectiveC内存泄漏【英文标题】:ObjectiveCmemoryleaking【发布时间】:2010-05-2019:39:13【问题描述】:我正在为自己创建一个Cocoa应用程序,但我发现了一个问题。我有两个NSTextFields,它们作为nextKeyViews相互连接。当我使用内存泄漏... 查看详情

Objective c - 按单词搜索

】Objectivec-按单词搜索【英文标题】:Objectivec-searchbyword【发布时间】:2014-08-0309:32:25【问题描述】:我有一个图书应用,用户可以在其中浏览和搜索图书。例如这是书籍列表:“腐肉舒适”“遮住她的脸”“老人无国”《猴子... 查看详情

我需要帮助创建一个宏以在 powerpoint 2013 中查找文本

】我需要帮助创建一个宏以在powerpoint2013中查找文本【英文标题】:Iwanthelptocreateamacrotofindtextinpowerpoint2013【发布时间】:2014-05-0407:40:36【问题描述】:。我在这里和网上找到了一些答案,但没有任何效果(可能是因为他们使用旧... 查看详情

使用 Objective-C 以编程方式读取文本文件

】使用Objective-C以编程方式读取文本文件【英文标题】:ReadTextfileProgrammaticallyusingObjective-C【发布时间】:2010-12-0207:35:16【问题描述】:我是iPhone编程新手我想阅读我的资源文件夹中的文本文件的内容。我做了很多谷歌搜索,但... 查看详情

在 Objective C 中为 UISlider 创建没有情节提要的 Outlet 和 Action

】在ObjectiveC中为UISlider创建没有情节提要的Outlet和Action【英文标题】:CreateOutletandActionwithoutStoryboardforUISliderinObjectiveC【发布时间】:2015-03-1110:02:46【问题描述】:我在我的主文件中创建了一个UISlider作为属性,我想在他的valueDidC... 查看详情

Plist 没有在 Objective C 中创建

】Plist没有在ObjectiveC中创建【英文标题】:PlistisnotcreatinginObjectiveC【发布时间】:2016-09-0807:22:04【问题描述】:当我收到服务器响应并尝试将其保存在plist中时,但plist文件未创建。我已经记录了文件路径和字典内容,但所有这... 查看详情